build-type:custom without custom-setup stanza assumes Cabal < 1.25
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
Using cabal-install 2.2, I do `cabal init` and change build-type to Custom. My cabal file is accepted but I get the following error from the resolver:
```
$ cabal new-build
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: test-cabal-custom-0.1.0.0 (user goal)
[__1] next goal: test-cabal-custom:setup.Cabal (dependency of
test-cabal-custom)
[__1] rejecting: test-cabal-custom:setup.Cabal-2.2.0.0/installed-2.2...,
test-cabal-custom:setup.Cabal-2.2.0.1, test-cabal-custom:setup.Cabal-2.2.0.0
(conflict: test-cabal-custom => test-cabal-custom:setup.Cabal>=1.10 && <1.25)
[__1] rejecting: test-cabal-custom:setup.Cabal-2.0.1.1,
test-cabal-custom:setup.Cabal-2.0.1.0, test-cabal-custom:setup.Cabal-2.0.0.2,
test-cabal-custom:setup.Cabal-1.24.2.0,
test-cabal-custom:setup.Cabal-1.24.0.0,
test-cabal-custom:setup.Cabal-1.22.8.0,
test-cabal-custom:setup.Cabal-1.22.7.0,
test-cabal-custom:setup.Cabal-1.22.6.0,
test-cabal-custom:setup.Cabal-1.22.5.0,
test-cabal-custom:setup.Cabal-1.22.4.0,
test-cabal-custom:setup.Cabal-1.22.3.0,
test-cabal-custom:setup.Cabal-1.22.2.0,
test-cabal-custom:setup.Cabal-1.22.1.1,
test-cabal-custom:setup.Cabal-1.22.1.0,
test-cabal-custom:setup.Cabal-1.22.0.0,
test-cabal-custom:setup.Cabal-1.20.0.4,
test-cabal-custom:setup.Cabal-1.20.0.3,
test-cabal-custom:setup.Cabal-1.20.0.2,
test-cabal-custom:setup.Cabal-1.20.0.1,
test-cabal-custom:setup.Cabal-1.20.0.0,
test-cabal-custom:setup.Cabal-1.18.1.7,
test-cabal-custom:setup.Cabal-1.18.1.6,
test-cabal-custom:setup.Cabal-1.18.1.5,
test-cabal-custom:setup.Cabal-1.18.1.4,
test-cabal-custom:setup.Cabal-1.18.1.3,
test-cabal-custom:setup.Cabal-1.18.1.2,
test-cabal-custom:setup.Cabal-1.18.1.1, test-cabal-custom:setup.Cabal-1.18.1,
test-cabal-custom:setup.Cabal-1.18.0, test-cabal-custom:setup.Cabal-1.16.0.3,
test-cabal-custom:setup.Cabal-1.16.0.2,
test-cabal-custom:setup.Cabal-1.16.0.1, test-cabal-custom:setup.Cabal-1.16.0,
test-cabal-custom:setup.Cabal-1.14.0, test-cabal-custom:setup.Cabal-1.12.0,
test-cabal-custom:setup.Cabal-1.10.2.0,
test-cabal-custom:setup.Cabal-1.10.1.0,
test-cabal-custom:setup.Cabal-1.10.0.0, test-cabal-custom:setup.Cabal-1.8.0.6,
test-cabal-custom:setup.Cabal-1.8.0.4, test-cabal-custom:setup.Cabal-1.8.0.2,
test-cabal-custom:setup.Cabal-1.6.0.3, test-cabal-custom:setup.Cabal-1.6.0.2,
test-cabal-custom:setup.Cabal-1.6.0.1, test-cabal-custom:setup.Cabal-1.4.0.2,
test-cabal-custom:setup.Cabal-1.4.0.1, test-cabal-custom:setup.Cabal-1.4.0.0,
test-cabal-custom:setup.Cabal-1.2.4.0, test-cabal-custom:setup.Cabal-1.2.3.0,
test-cabal-custom:setup.Cabal-1.2.2.0, test-cabal-custom:setup.Cabal-1.2.1,
test-cabal-custom:setup.Cabal-1.1.6, test-cabal-custom:setup.Cabal-1.24.1.0
(constraint from minimum version of Cabal used by Setup.hs requires >=2.2)
[__1] fail (backjumping, conflict set: test-cabal-custom,
test-cabal-custom:setup.Cabal)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: test-cabal-custom:setup.Cabal,
test-cabal-custom
```
For some reason, it implicitly picks Cabal <1.25 as a constraint. Adding this stanza works:
```
custom-setup
setup-depends: Cabal, base
```
I did find this in the docs:
> Since Cabal 1.24, custom Setup.hs are required to accurately track their dependencies by declaring them in the .cabal file rather than rely on dependencies being implicitly in scope.
So is this just a case of cabal not giving an error message on my incorrect .cabal file?
Contributor guide
Assessment
This issue has not been assessed yet.