RFC: Dropping build support for GHC < 8
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
Hi Everyone,
This project currently supports GHC >=7. However, as of the latest [Haskell Survey](https://taylor.fausak.me/2020/11/22/haskell-survey-results/#s2q4), roughly 1% of the community is using a GHC < 8.0:

However, looking at CI times, on average, we spend roughly 47% of CI time on GHC < 8.0. This means that we're spending close to half of all build time supporting 1% of the community for a niche case that disproportionately negatively affects the 99%. Dropping GHCs would *significantly* improve the contributor pipeline, and help ease the burden going forward for both users and maintainers. Part of me suspects that we support old GHCs in order to not cast anyone into the lurch if they happen to not be able to upgrade. However, I think having a concrete stability policy is just as good, and will set expectations appropriately so that people know what's coming and can act accordingly. So, my proposal is this:
1. We drop GHC < 8.0 for Cabal and `cabal-install`. Older GHC users can always use older versions of Cabal. The point to stress here is that we want to put cap *ongoing* support at roughly 5 years for a particular GHC.
2. We establish a concrete stability policy to this effect, and announce it far and wide.
3. etc. (whatever we come up with here as refinements)
Contributor guide
Assessment
This issue has not been assessed yet.