-
Notifications
You must be signed in to change notification settings - Fork 75
Open
Description
Initial discussion in a thread starting here: haskell-hvr/regex-tdfa#54 (comment)
I am trying to solve the following problem:
- Set up a
constraint-set
to test forbytestring-0.12
for some newer GHCs. - I need
allow-newer: bytestring
as some of my dependencies do not allowbytestring-0.12
yet. - Some dependencies (e.g.
xor
) will fail to configure on older GHCs if they are bound to the installedbytestring
. - However, some (e.g.
xor
) will also fail to build if their upper bound is loosened.
For example, looking at the following CI configuration:
installed: +all -mtl -transformers -unix -process -directory
-- adding -bytestring here gives build failure for xor on GHC 7.6,
-- since `allow-newer` below allows for a too new `bytestring`
-- not adding -bytestring here gives configuration failure for xor on GHC 7.6
constraint-set bytestring-0.12
ghc: >= 8.2 && < 9.5
constraints: bytestring ^>= 0.12.0.0
tests: True
run-tests: True
raw-project
allow-newer: bytestring
- If I have a global
allow-newer: bytestring
, on GHC 7.6xor
fails to build: https://github.com/haskell-hvr/http-io-streams/actions/runs/5597341206/jobs/10235561064?pr=12#step:17:197 - If I restrict to the installed
bytestring
, on GHC 7.6xor
fails to configure: https://github.com/haskell-hvr/http-io-streams/actions/runs/5600301654/jobs/10242494046?pr=12#step:15:27
The principled solution would be to have a allow-newer
that is scoped by a constraint-set
rather than action globally via raw-project
.
Metadata
Metadata
Assignees
Labels
No labels