Proposal: Changes to the PVP

Michael Snoyman michael at snoyman.com
Wed Apr 9 10:29:18 UTC 2014


On Wed, Apr 9, 2014 at 12:03 PM, Henning Thielemann <
schlepptop at henning-thielemann.de> wrote:

> Am 09.04.2014 10:47, schrieb Michael Snoyman:
>
>
>  I would like to propose the following changes to the PVP. These are the
>> same changes that I recently published on the Yesod blog[1]. For more
>> information on the motivations behind these changes, please see that
>> blog post.
>>
>
> I see no need to complicate the PVP with distinctions about stable and
> unstable, published and unpublished packages. My preferred solution is to
> declare lower and upper version bounds in Build-Depends according to
> current PVP and ignore these bounds on demand via options that are passed
> to cabal-install.
>
>
There are two concrete needs I'm trying to address:

* From a library maintainer standpoint: decreased maintenance overhead.
Being able to say `text < 2` or `case-insensitive < 2` means less time
spent fiddling with cabal files.
* From a library user standpoint: it makes it less likely that you'll run
into a case where cabal cannot create a build plan. If package foo places a
restrictive upper bound on text of `text < 1.1`, and package bar starts
using a new feature in text 1.1 and therefore has a bound `text >= 1.1`,
the user won't be able to use foo and bar together until the author of foo
bumps the version number.

The other needs I previously considered for this was testing newer versions
of GHC, but the --allow-newer flag in cabal mostly[1] addresses this issue,
so I don't think it's pertinent.

Note: this proposal doesn't actually impose a difference in behavior
between published and non-published software. The PVP is already clearly
not trying to ensure reproducible builds of packages on Hackage. I just
want that clarity to extend to non-published code as well, since there
seems to be some confusion.

Michael

[1]
http://www.reddit.com/r/haskell/comments/22jlis/proposal_changes_to_the_pvp/cgny3f3
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20140409/731d7c17/attachment.html>


More information about the Libraries mailing list