blacklist of dependencies is ignored
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
Original issue: haskell/HTTP#55. The following was run on April 20, 2014 at ~12:00 UTC. I mention this because later uploads to Hackage will likely cause different results.
There is currently a blacklist on Hackage to prevent HTTP < 4000.2.5 from being used. This is respected when installing HTTP directly, but _not_ when HTTP is depended on by another package (in this case, the warp test suite).
Starting with a clean user package database, GHC 7.6.3, and cabal-install 1.16, I get the following:
- `cabal install HTTP --dry-run` indicates that it will install network-2.4.2.3 and HTTP-4000.2.12. Good.
- `cabal install HTTP warp --dry-run` installs those versions too. Again good.
- `cabal install warp --dry-run` uses network-2.5.0.0 and does not include HTTP (HTTP is only used by the test suite). Once again, good.
- `cabal install warp --dry-run --enable-tests` _still_ uses network-2.5.0.0 and HTTP-4000.2.4. _This_ is the problem.
With this bug, Hackage blacklisting can only be relied upon in very narrow cases.
Contributor guide
Research direction
Start by reproducing the issue with the listed cabal install --dry-run commands, especially warp with --enable-tests, using the stated GHC and cabal-install versions if available. Trace dependency resolution for test suites and Hackage blacklists; done means the dry run no longer selects the blacklisted HTTP version.
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
- 45/100