mietek / halcyon

System for installing Haskell apps
BSD 3-Clause "New" or "Revised" License
168 stars 20 forks source link

Use `cabal install --enable-tests --dependencies-only --dry-run` instead of `cabal freeze`? #52

Closed danclien closed 5 years ago

danclien commented 9 years ago

Doing cabal install --enable-tests --dependencies-only --dry-run in a clean sandbox gives similar results to using cabal freeze. This would help resolve/avoid the following issues:

I grabbed the output of both on one of our internal projects, and the output can be seen here. Output from cabal freeze was altered using sed to make differences easier to notice.

Major differences:

mietek commented 9 years ago

Thank you. This is a model feature request. Much appreciated.

mietek commented 9 years ago

Getting rid of cabal freeze would also avoid https://github.com/haskell/cabal/issues/1908, which is still an issue for cabal-install versions prior to 1.22.0.0, and requires a workaround.

mietek commented 9 years ago

Another benefit is, the GHC version would not be automatically over-constrained.

Currently, since cabal freeze includes a version constraint for the base package, the GHC version is constrained down to the point release; e.g. base-4.7.0.2 constrains GHC to 7.8.4, and not just 7.8.

As a consequence, declaring HALCYON_GHC_VERSION in a magic file should be allowed.

mietek commented 9 years ago

Replacing cabal freeze would also allow using cabal-install versions prior to 1.20.0.0.

thorinii commented 9 years ago

What's needed to do this? Are we waiting for an update to cabal, or is it parsing a different format, or...?

mietek commented 9 years ago

@thorinii: In a word, time — to design, and to implement.

mietek commented 9 years ago

Perhaps it’d be worth to consider supporting separate sets of version constraints for different GHC versions. Perhaps even separate .halcyon/$GHC_VERSION directories.

mietek commented 5 years ago

I’m sorry. This project is no longer maintained.