[Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends
joeyadams3.14159 at gmail.com
Fri Aug 17 00:07:06 CEST 2012
On Wed, Aug 15, 2012 at 3:38 PM, Bryan O'Sullivan <bos at serpentine.com> wrote:
> I propose that the sense of the recommendation around upper bounds in the
> PVP be reversed: upper bounds should be specified only when there is a known
> problem with a new version of a depended-upon package.
I, too, agree. Here is my assortment of thoughts on the matter.
Here's some bad news: with cabal 1.14 (released with Haskell Platform
2012.2), cabal init defaults to bounds like these:
build-depends: base ==4.5.*, bytestring ==0.9.*, http-types ==0.6.*
Also, one problem with upper bounds is that they often backfire. If
version 0.2 of your package does not have upper bounds, but 0.2.1 does
(because you found out about a breaking upstream change), users who
try to install your package may get 0.2 instead of the latest, and
still get the problem you were trying to shield against.
A neat feature would be a cabal option to ignore upper bounds. With
--ignore-upper-bounds, cabal would select the latest version of
everything, and print a list of packages with violated upper bounds.
More information about the Haskell-Cafe