-
Notifications
You must be signed in to change notification settings - Fork 704
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Migrating the ecosystem to use build-tool-depends
#5412
Comments
I'm not sure how you propose we do this. Currently if you don't declare your dependencies properly, That being said, there's a few cases we can actually validate on Hackage uploads. And for those I see no reason to provide any grace-period, as there's no reason to keep allowing inaccurate dependency specs being uploaded when we can detect them and doing it properly doesn't harm older cabals.
Fwiw, when I notice this while performing hackage meta-data revisions, I try to add the missing Based on the data I have, In general, it's rather few packages that happen to be underspecified in terms of their build tool dependencies; and those can easily be handled via revisions. We just need to make sure that new uploads are validated better. |
I've opened #5561 to at least explain the current situation a bit better hopefully. wdyt? |
It looks like there's nothing more to do here. |
For a decent while now,
build-tool-depends
has been the correct way to add built-time executable dependencies. Cabal, Stack, and cabal2nix all support it to my knowledge. Many packages throughout the ecosystem however still expect to get the executables of any package; probably the biggest example of this would behspec-discover
. This is bad because because it pulls back against the "componentization" that all the tools are striving for, and also harms cross as libraries and build-time tools are built for different platforms.We tried just "machete-ing" our way through this for Nix in NixOS/nixpkgs#41420, but the number of overrides needed was deemed excessive. First we need to declare Cabal min version after which packages are required to do things properly (probably 3 with the deprecation of old-build?). Second, we need to decide what to do with older Cabal files.
CC @matthewbauer
The text was updated successfully, but these errors were encountered: