inconsistency due to "impossible version range" in configure phase *after* the solver phase
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
Preliminary bug description:
1. cabal solver finds valid build-plan (where e.g. a test component of a dependency `foo` isn't enabled)
2. build-plan gets executed, and during the configure phase of `foo` the internal check fails due to an internal `build-depends: foo ==0.0.*` dependency even though the test component isn't relevant for the picked build-plan:
> cabal: The package has an impossible version range for a dependency on an internal library: foo ==0.0.*. This version range does not include the current package, and must be removed as the current package's library will always be used.
I consider the `configure` phase to be the culprit here, as it triggered a failure for a component which was irrelevant to the requested build-plan.
Contributor guide
Research direction
Start by reproducing the build plan where dependency foo's test component is disabled, then trace how the solver's plan is passed into the configure phase. Compare validation of enabled and irrelevant components; done means an impossible internal dependency in an unselected component no longer fails configuration, while relevant invalid dependencies remain checked.
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
- Needs clarification
- Newbie friendliness
- 25/100