commercialhaskell / stack

The Haskell Tool Stack
http://haskellstack.org
BSD 3-Clause "New" or "Revised" License
3.95k stars 842 forks source link

Fix #6377 Drop support of Cabal < 2.2 #6483

Closed mpilgrem closed 4 months ago

mpilgrem commented 4 months ago

Please also shortly describe how you tested your change. Bonus points for added tests! Relying on CI.

mpilgrem commented 4 months ago

@theobat, I think this implements what we have discussed. However, before I put it through, may I double-check that you still think that dropping support for Cabal < 2.2 will make it easier for you to make the other changes that you have in mind?

theobat commented 4 months ago

@mpilgrem, it's not that it'll make the planned changes easier, it's that we can't have component based builds for cabal less than 2.2, because the interface* simply didn't exist. Component based builds are a requirement for several things such as backpack and more parallelism at the action level (parallel per components versus parallel per packages).

And given this requirement, it also makes sense to remove the complexities of these cabal versions.

* Quoting the cabal doc:

In Cabal 2.0, support for a single positional argument was added to runhaskell Setup.hs configure This makes Cabal configure the specific component to be configured. Specified names can be qualified with lib: or exe: in case just a name is ambiguous (as would be the case for a package named p which has a library and an executable named p.)