-
Notifications
You must be signed in to change notification settings - Fork 704
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
Expose cabal-install as a library #5473
Comments
@quasicomputational one of the problems is that we want to be able to do major-ver worthy changes at the API level within |
Duplicate of #1597 |
Thanks for the cross-reference - "cabal-install" and "library" are not very precise search terms in the bugs here... I'll close this one and repost a precis of the new information there. |
There's currently no good way to parse or render
cabal.project
files: there's code incabal-install
, but getting at it requires setting a flag with a description telling you not to do that very thing. The alternative for some use-cases is grubbing around with theplan.json
, which ties you even more tocabal-install
's implementation details.#3781 is an issue from two years ago about exposing the solver somehow, which would be useful for Stack along with other things: again, these are using ugly hacks today like inspecting
plan.json
or trying to parse output that's only meant for human consumption. If I'm looking at things correctly, most of the separation work has been done since that issue was opened; the only thing holding people back is thatcabal-install
isn't sanctioned for use as a library.What are the concerns that led to not exposing the library? If it's API ossification, I'm not so worried:
cabal-install
isn't a boot package, so users can lag behind on upgrading if necessary. It follows the PVP and I think we should continue to be bold in refactoring the API whenever it's a good idea; the only new thing we would have to do would be to make sure API changes go into the changelog, which we're not currently in the habit of doing.The text was updated successfully, but these errors were encountered: