haskell / haskell/cabal

`cabal check` should check `base` bounds wrt language extensions

Open
#9,245 4 comments 1 reaction 0 assignees View on GitHub
cabal-install: cmd/check type: enhancement
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

**Describe the feature request**

I'm writing a library and I've enabled `OverloadedRecordDot` in my `.cabal` file. When I run `cabal check`, it doesn't say anything about my `base >= 4.7` bound, even though it should know that `OverloadedRecordDot` would require GHC >= 9.2 or a `base >= 4.16`.

**Additional context**

It's annoying to figure out what features are implemented in what GHCs and what `base` versions they correspond with. `cabal check` can easily automate this information, which would signal when you've started depending on a langauge extension that your `base` version bounds can't support.

Contributor guide

Open the contributing guide

Research direction

Start at the `cabal check` entry point and inspect how it reads language extensions and `base` bounds from a `.cabal` file. Determine how the known GHC and `base` requirements for extensions such as `OverloadedRecordDot` should be represented and reported. Done means `cabal check` flags incompatible bounds for enabled extensions.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
build-system
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.