Description
With head
job we get this in cabal.project
:
allow-newer: *:Cabal, *:Cabal-syntax, *:array, *:base, *:binary, *:bytestring, *:containers, *:deepseq, *:directory, *:exceptions, *:filepath, *:ghc, *:ghc-bignum, *:ghc-boot, *:ghc-boot-th, *:ghc-compact, *:ghc-heap, *:ghc-prim, *:ghci, *:haskeline, *:hpc, *:integer-gmp, *:libiserv, *:mtl, *:parsec, *:pretty, *:process, *:rts, *:stm, *:system-cxx-std-lib, *:template-haskell, *:terminfo, *:text, *:time, *:transformers, *:unix, *:xhtml,
Usually, its effects are moderated by matching installed
constraints in cabal.project.local
:
constraints: Cabal installed
constraints: Cabal-syntax installed
constraints: array installed
constraints: base installed
constraints: binary installed
constraints: bytestring installed
constraints: containers installed
constraints: deepseq installed
constraints: directory installed
constraints: exceptions installed
constraints: filepath installed
constraints: ghc installed
constraints: ghc-bignum installed
constraints: ghc-boot installed
constraints: ghc-boot-th installed
constraints: ghc-compact installed
constraints: ghc-heap installed
constraints: ghc-prim installed
constraints: ghci installed
constraints: haskeline installed
constraints: hpc installed
constraints: integer-gmp installed
constraints: libiserv installed
constraints: mtl installed
constraints: parsec installed
constraints: pretty installed
constraints: process installed
constraints: rts installed
constraints: stm installed
constraints: system-cxx-std-lib installed
constraints: template-haskell installed
constraints: terminfo installed
constraints: text installed
constraints: time installed
constraints: transformers installed
constraints: unix installed
constraints: xhtml installed
However, in the "unconstrained build", the cabal.project.local
is deleted while the cabal.project
remains in place.
As a consequence, we can get wild build plans, e.g. Cabal-3.2.1.0
paired with Cabal-syntax-3.8.1.0
src/Hackage/Security/TUF/Layout/Repo.hs:9:1: error:
Ambiguous module name ‘Distribution.Package’:
it was found in multiple packages:
Cabal-3.2.1.0 Cabal-syntax-3.8.1.0
Is this working as intended?
There is a setting unconstrained-build:
for cabal.haskell-ci
which I could set to < 9.6
to prevent such false negatives.
Should this maybe on by default for the head
job?
Having to put this into the cabal.haskell-ci
brings the risk that it remains there forgotten while GHC has long progressed beyond 9.6. What I would really want to put there is != head
or so. But I would argue that this could be the default.