-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Travis: Consider only testing the latest point releases of each major GHC version #65
Comments
Is the motivation to improve developer ergonomics for you? Also, has CI ever been useful in detecting a change between minor versions? |
Yes. That, and I have to maintain a large collection of hacks to support old minor versions of GHC due to old compiler bugs: Lines 1 to 18 in 9bf3fc6
There are a handful of changes to |
Seems reasonable! 👍 |
If someone writes a small script which searchs out for all the BTW, disabling |
I'm not sure how fancy of a script you're envisioning, but this crude one-liner tells you how many occurrences of each variant of
There's some duplication in there, but the point I want to make shines through: every use of |
@RyanGlScott so the hacks are actually more like,
and not that we have some code written differently specifically for GHC-7.8.1 (or some other minor version)? |
Right, the issues I have to work around are exclusively old GHC bugs, not API differences in |
Given that `base-compat` doesn't even use any conditional APIs based on minor GHC/`base` releases at present, testing every single minor release simply isn't justifying the large increase in CI turnaround time it induces. Now that we no longer test these minor releases, we can get rid of several ugly `haskell-ci` hacks we previously needed to support them. Fixes #65.
Given that `base-compat` doesn't even use any conditional APIs based on minor GHC/`base` releases at present, testing every single minor release simply isn't justifying the large increase in CI turnaround time it induces. Now that we no longer test these minor releases, we can get rid of several ugly `haskell-ci` hacks we previously needed to support them. Fixes #65.
It sounds like there is a consensus to proceed with this idea, so I have implemented this in #66. |
Given that `base-compat` doesn't even use any conditional APIs based on minor GHC/`base` releases at present, testing every single minor release simply isn't justifying the large increase in CI turnaround time it induces. Now that we no longer test these minor releases, we can get rid of several ugly `haskell-ci` hacks we previously needed to support them. Fixes #65.
Currently,
base-compat
's Travis setup tests no fewer than 32 (!) different configurations. This seems somewhat excessive, especially given that there are only 11 different major versions of GHC represented among the various configurations. This means that 21 of the configurations simply test different minor releases.While there is some value in ensuring that
base-compat
works with every minor release of GHC, it causes the CI turnaround time to be quite high. Moreover, most of the CPP used inbase-compat
only depends on the major version of GHC being used (it might be all of the CPP, in fact, but I haven't tested this). Therefore, the amount of value we gain from testing every minor release is quite low compared to the significant build times they add in each CI run.I propose that we simply test against the latest point release of each major GHC version. What do others think?
The text was updated successfully, but these errors were encountered: