[Haskell-cafe] Cabal message problem.

Johannes Waldmann waldmann at imn.htwk-leipzig.de
Thu Dec 16 11:08:23 CET 2010

Magicloud Magiclouds <magicloud.magiclouds <at> gmail.com> writes:

> Really hoping cabal has some kind of way to ignore these version thing.

+1, sort of.

Really, when moving to ghc-7 I found the most annyoing thing 
is upper version bounds in cabal files. 

This makes cabal-install all too eager to downgrade libraries.
E.g., ghc-7 comes with containers-0.4 but some cabal files
require containers-0.3. This compiles, but presumably 0.4 is
more efficient, and I'm losing that advantage. A more severe thing
is that some A.cabal file might refer to package B in
some version that does not compile with ghc-7, even if
the author of B provided an update on hackage meanwhile.

So actually what I do is "cabal unpack" and then remove
all upper version bounds from the cabal file
and then "cabal install".

I figure the above sounds a lot like "why do we need to declare
types for identifiers, it's just annoying when the types change".
But: I'm always puzzled by build-dependencies like "A <= 3.4.5".
With the "major.minor.release" scheme, 
a change in "release" means no API change (just bugfix),
in "minor" means compatible extension of API,
and only "major" changes can break the API.
So, I could understand "A = 3.*" but anything that mentions
minor and release numbers is really a quite pessimistic view of the world.
Actually, I read "A <= 3.4.5" as "my package depends on a bug
in package A that was fixed in 3.4.6"


More information about the Haskell-Cafe mailing list