Open mgaudet opened 7 years ago
is there any option to test with both old and new compilers, maybe only on some platforms?
@mstoodle I believe this is doable by configuring the build matrix.
So, there's certainly many ways we can accomplish this.
One concern would be that we're already running into concerns about build times on Travis... adding more configurations, or double-building is only going to make that ~work~ worse.
If we limit the extra builds to Linux it may not slow down our builds that much. We should try a 4th Linux build to see if it delays the builds. If it does not we can do one or two more builds to test different compiler versions for Linux. OSX builds seem really slow to get started so I would prefer to not add more OSX builds at this point.
Looking more into this it would be rather straight forward but the compile times will increase by the time taken to install the compiler. I am not sure that is an issue though. The difficulty is overriding the compiler variables passed to configure through run_configure.mk. I have completed something similar before in SOM++ so I will give this a try and see how the travis builds go on my personal fork.
UPDATE we actually use a different travis setup so it may not be as easy as I thought. I will continue to poke around at it.
Currently our strategy for avoiding C++ code that won't compile with downstream build compilers is effectively human diligence: We need those writing the code to test against all downstream project's build compilers, and committers to recognize C++ constructs that won't compile in older compilers during review.
This process is too prone to the human nature of energy conservation and optimism, in particular as we attempt to attract contributors who may not have access to the builds for all downstream projects.
We should downgrade our Travis CI build compilers to the lowest level we expect a downstream project to use (for reference, I'm talking about gcc 4.4, to give an idea of where I'm thinking we go).
Pro:
Con: