Set upper bound on setup.Cabal relative to current version
commitc92b71502787acd40bb5012422f80150a6f112c5
authorHerbert Valerio Riedel <hvr@gnu.org>
Sat, 3 Mar 2018 10:15:02 +0000 (3 11:15 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Sat, 3 Mar 2018 22:01:39 +0000 (3 23:01 +0100)
tree315b637f7bc605f389aa2b79626f534d49955819
parentde880a54b68f71a344d72e44a0f3277d94721e5e
Set upper bound on setup.Cabal relative to current version

As we can't predict the future, we also place a global upper
bound on the lib:Cabal version we know how to interact with:

The upper bound is computed by incrementing the current major
version twice in order to allow for the current version, as
well as the next adjacent major version (one of which will not
be released, as only "even major" versions of Cabal are
released to Hackage or bundled with proper GHC releases).

For instance, if the current version of cabal-install is an odd
development version, e.g.  Cabal-2.1.0.0, then we impose an
upper bound `setup.Cabal < 2.3`; if `cabal-install` is on a
stable/release even version, e.g. Cabal-2.2.1.0, the upper
bound is `setup.Cabal < 2.4`. This gives us enough flexibility
when dealing with development snapshots of Cabal and cabal-install.

This addresses #415

(cherry picked from commit e66106c7b77d6ee6df4948bbe144e4d520f8b311)
cabal-install/Distribution/Client/Dependency.hs
cabal-install/Distribution/Client/ProjectPlanning.hs
cabal-install/Distribution/Solver/Types/ConstraintSource.hs