
Magicloud Magiclouds
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" J.W.