-
Notifications
You must be signed in to change notification settings - Fork 724
Open
Labels
cabal-install: cmd/checkre: conditionalAbout conditional declarations in cabal files(`if`)About conditional declarations in cabal files(`if`)type: enhancement
Description
See e.g. jvranish/Lenses#3.
Currently hackage does not allow revision of conditionals, and it does not allow new build-depends.
In the situation (1)
build-depends: base
, A
if cond
build-depends: B >= 0.1 && < 0.4
else
build-depends: B >= 0.2 && < 0.5
the constraints for B cannot be revised.
Thus, the better practice is to put a top-level B with extra constraints in the conditional (2):
build-depends: base
, A
, B >= 0.1 && < 0.5
if cond
build-depends: B < 0.4
else
build-depends: B >= 0.2
If cabal check would suggest a adding a top-level build-depends that appears in all branches, that would help with revisions on hackage.
Of course, this could also be fixed on the hackage side; in case it is fixed there by rejecting packages that could be rewritten from (1) to (2), cabal check should also warn about possible complaints by the hackage server.
Metadata
Metadata
Assignees
Labels
cabal-install: cmd/checkre: conditionalAbout conditional declarations in cabal files(`if`)About conditional declarations in cabal files(`if`)type: enhancement