haskell / haskell/cabal

Can't build out-of-the-box on pre-8.4 GHCs

Open
#5,422 1 comment 0 reactions 0 assignees View on GitHub
type: discussion
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.