Can't build out-of-the-box on pre-8.4 GHCs
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
In `Cabal.cabal`, we have this unconditional `build-depends` delcaration:
```
-- Parsec parser-related modules
build-depends:
-- transformers-0.4.0.0 doesn't have record syntax e.g. for Identity
-- See also https://github.com/ekmett/transformers-compat/issues/35
transformers (>= 0.3 && < 0.4) || (>=0.4.1.0 && <0.6),
mtl >= 2.1 && < 2.3,
text >= 1.2.3.0 && < 1.3,
parsec >= 3.1.13.0 && < 3.2
```
But 3/4 of those aren't bundled with GHC before 8.4 and `transformers` wasn't bundled with 7.6, which means that our support promise ("the Cabal library must be buildable out-of-the-box with the dependencies that shipped with GHC for at least five years") isn't being fulfilled.
Contributor guide
Research direction
The dependency declaration is in Cabal.cabal; start by comparing its unconditional build-depends entries with the packages shipped by pre-8.4 GHC releases. Adjust the dependency handling so the Cabal library builds out of the box with those shipped dependencies, then verify builds for the affected GHC versions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100