Improve Stackage support
mietek opened this issue · 6 comments
Using a particular Stackage snapshot appears to be a good alternative to explicitly specifying version constraints.
This is related to #40.
Stockage might miss some packages though. E.g.
regex-compat-tdfa
gitlib-libgit2
RSA
Thus, building with hackage might work, while building with stackage might not. (Though new packages are constantly added). This is where a stockage cabal.config
gives you best of both worlds right now.
With 77253b8, when using Stackage as the HALCYON_CABAL_REMOTE_REPO
, Halcyon should no longer emit warnings about version constraints not being declared, and should no longer re-run cabal update
daily.
It should be possible to ask Halcyon to pull in a particular Stackage cabal.config
, even if it wasn’t included in the source directory — just as it is possible to specify HALCYON_CONSTRAINTS
on the command-line.
Using a Stackage cabal.config
would require changing the assumption that a constraints file (either .halcyon/constraints
or cabal.config
) for a particular app should list the complete set of packages which are the app’s direct or indirect dependencies, as generated by cabal freeze
.
Switching from cabal freeze
to cabal install --dry-run
is likely to help (#52).
It’s worth noting that the notion of a constraints file, named cabal.freeze
, was mentioned in the original cabal freeze
proposal, which was explicitly inspired by the features of Gemfile.lock
(haskell/cabal#1502).
Unfortunately, cabal.freeze
didn’t make it into cabal-install, due to lack of time (haskell/cabal#1519).
It wan't due to a lack of time, it was due to Johan mandating his design decision on the matter.
I’m sorry. This project is no longer maintained.