[Haskell-cafe] How to determine correct dependency versions for a library?

Erik Hesselink hesselink at gmail.com
Mon Nov 12 20:58:17 CET 2012


On Mon, Nov 12, 2012 at 5:13 PM, Johan Tibell <johan.tibell at gmail.com>wrote:

> On Mon, Nov 12, 2012 at 1:06 AM, Erik Hesselink <hesselink at gmail.com>wrote:
>
>> tl;dr: Breakages without upper bounds are annoying and hard to solve for
>> package consumers. With upper bounds, and especially with sandboxes,
>> breakage is almost non-existent.
>>
>> I don't see how things break with upper bounds, at least in the presence
>> of sandboxes. If all packages involved follow the PVP, a build that worked
>> once, will always work. Cabal 0.10 and older had problems here, but 0.14
>> and later will always find a solution to the dependencies if there is one
>> (if you set max-backjumps high enough).
>>
>
> The "breakage" people are talking about with regards to upper bounds is
> that every time a new version of a dependency comes out, packages with
> upper bounds can't compile with it, even if they would without the upper
> bound. For example, the version number of base is bumped with almost every
> GHC release, yet almost no packages would actually break to the changes
> that caused that major version number to go up.
>

Yes, this is why I talk about living on the bleeding edge, and shifting the
burden from package maintainers to package users.

And I believe the last base changes included a change to 'catch' which
would have broken a lot of packages. The Num changes also caused a lot of
code changes, and there were probably more I don't remember.

Erik
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20121112/08324b02/attachment.htm>


More information about the Haskell-Cafe mailing list