-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build against optparse-applicative-0.18.1.0
#446
Conversation
thank you!!! |
This unfortunately allows some non-working solutions:
I think the only solution here is to require the newer versions of both, otherwise it's quite likely that if a user accidentally gets an earlier version of one of them, they'll just get a compiler error. I can make a patch if that's okay. |
The alternative would be to have a version of |
I don't understand what "But optparse-applicative > 1.8 and ansi-wl-pprint < 1.0" means? I don't understand the conflict, I assume that there are unsatisfiable constraints? |
Sorry, let me be clearer. In the past, Recently, What does not work is e.g. a new
Hence my suggestion:
|
To me, it sounds best to just bump the lower bound of both as you previously suggested. Users with older versions can pull constraints from old Stackage snapshots. |
Well, at the moment it's a landmine for cabal users. I would be fine with bumping the lower bounds again, I just think it's unfortunate to do this by revision as it potentially will break some people's build plans (as it would break mine, since I'm forced into the old ansi-wl-pprint!). |
@michaelpj: Could you give me an example of the exact |
In (I thought |
Also just ran into this, reproducible example: Checkout current master (38a64c4) and run (I used GHC 9.2.8, but I think it shouldn't matter) cabal build --index-state=2023-10-04T00:00:00Z --constraint='ansi-wl-pprint < 1' You then get error messages like
Full log
In my case, adding |
This might be a case for the Cabal team like e.g. @Mikolaj. I am not sure why Cabal tries the lower version of |
That may be related to the fact that ansi-wl-pprint is not on Hackage, perhaps? https://hackage.haskell.org/packages/search?terms=ansi-wl-pprint E.g., if a package version is deprecated, cabal tries not to choose it when planning, but you can force it on commandline IIRC. Are there any deprecated versions around? Also, I'm quite surprised a package not on Hackage is solved for successfully. There must be some mechanism that permits that (or is the package hidden from the UI?). If you discover what it is, I'd be glad to learn. |
It is on Hackage, but as it is marked as deprecated as a whole (but all individual versions are not deprecated), it does not show up in the search: https://hackage.haskell.org/package/ansi-wl-pprint |
Oh, I see, thank you. I have no idea how cabal works with wholly deprecated package, but it should not pick a random version, for sure. Please feel free to open a cabal ticket, since this may indeed be a buggy corner case. |
I have submitted #447, which I believe would address the problem. Please try it out @amesgen and @michaelpj . |
Thanks! BTW, I now understand why this occurs: I am running a cabal script in a Nix shell where ansi-wl-pprint-0.6.9 is preinstalled, and the Cabal solver always first tries to find a plan that includes installed packages, which is possible ATM, but will no longer be with #447. |
Tested using
cabal test
. This should allow turtle to get back into Stackage.