Warn when module reexports are likely to break PVP
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
Hat tip @hvr. Consider the following package:
```
name: p
version: 1.0.0.0
library
build-depends: q >= 1 && < 2
reexported-modules: Q
```
Does `p` satisfy PVP? No: if I depend on `p == 1.0.0.0`, I may still get different choices for `q`, and if `p` reexports `q`, the difference between `q-1.0` and `q-1.1` is impermissible for the same version of `p`. This is fairly non-obvious unless you've been bitten by this in practice, so Cabal really should warn in this situation, and the documentation should mention it.
Contributor guide
Research direction
The issue names no files, tests, or entry points. Start by locating Cabal's handling of reexported-modules and dependency version ranges, then identify the documentation section covering PVP; done means the problematic case emits a warning and the documentation explains the constraint.
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