qualified imports, PVP and so on (Was: add new Data.Bits.Bits(bitZero) method)

Michael Snoyman michael at snoyman.com
Wed Feb 26 19:19:25 UTC 2014

On Wed, Feb 26, 2014 at 6:21 PM, MightyByte <mightybyte at gmail.com> wrote:

> On Wed, Feb 26, 2014 at 4:56 AM, Michael Snoyman <michael at snoyman.com>
> wrote:
> I suspect that the root cause for you holding tihs position is that you
> happen
> to be operating in a relatively self-contained corner of the package space
> and
> don't often depend on fast-moving packages that aren't under your control.

Choosing this point in the thread to respond to a few points, for no
particular reason.

I'm willing to reconsider my stance on the PVP, and a lot of the feedback
here is making me rethink some decisions. Let me take a different stab at
the problem.

I think the main problem with PVP right now is one of *scope*. I see it as
trying to address two different issues:

1. Make sure that any code that anyone ever wrote will continue to build in
the future.
2. Provide guidelines to package authors to make sure that `cabal install
foo` works reliably, regardless of what's happened on the rest of Hackage.

It's (1) that I take huge issue with, because (as I've been trying to
demonstrate) I don't see any way that a policy like PVP could ever fully
solve this problem. And more to the point: I think "my code builds" isn't
the goal that we should be striving for anyway, it's the goal of
reproducible builds. I simply don't think it's worthwhile to push this
burden onto package maintainers, as the only realistic solution is
dependency freezing, which does in fact fully solve the problem.

But the feedback I'm reading on (2) is making me reconsider my stance. I
have to say though, as much as people in this thread are saying the PVP
will solve these problems, I'm highly skeptical, since Yesod *did* in fact
follow the PVP very strictly for years, and the result was people
complaining about broken builds on a regular basis. It's entirely possible
though that this was the fault of cabal-install's older dependency solver,
and if Yesod switched over to the PVP now, things would be better.

I still have some concerns about the PVP's stance on a few issues, namely:

1. The upper bounds on non-upgradable packages, which I've raised elsewhere
in this thread.
2. The lack of flexibility in interpretation. I think there's a qualitative
difference between depending on the text package by simply importing
Data.Text (Text), versus using some experimental features of a version 0.1

So I suppose if those points were addressed, a lot of my PVP skepticism
would disappear, and I'd be more inclined to coming back into the fold, so
to say.

My question is: am I alone in thinking these are in fact issues with the
PVP? Is anyone else willing to embark on a more significant overhaul of the

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20140226/818b0ce3/attachment-0001.html>

More information about the Libraries mailing list