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

Michael Snoyman michael at snoyman.com
Wed Feb 26 12:05:05 UTC 2014


On Wed, Feb 26, 2014 at 1:47 PM, Alain O'Dea <alain.odea at gmail.com> wrote:

> On Feb 26, 2014, at 7:11, Michael Snoyman <michael at snoyman.com> wrote:
>
>
>
> I disagree with that assertion. I get plenty of complaints from users
> about trying to install packages and getting "confusing error messages"
> about cabal plan mismatches. I don't disagree that the PVP does make the
> user experience better in some cases. What I disagree with is the
> implication that it makes the user experience better in *all* cases. This
> is simply not a black-and-white issue.
>
> Michael
>
>
> This is not a new problem.
>
> Java users faced it with Maven and it was solved by curation of Maven
> Central and the ability to add outside repositories as needed.
>
> Node.js users faced it with NPM and solved it with dependency freezing.
>
> Ruby users faced it with Gem and solved it with dependency freezing.
>
>
You've presented three examples of other languages solving the problems
using the two techniques I've been advocating through this thread: curation
and dependency freezing. Is there an example of a language that took an
approach like the PVP and succeeded in solving it?


> I imagine there are a world of different solutions to this problem.  The
> PVP isn't a complete solution, but I consider it to be a sensible baseline
> (like code style conventions and warning free builds) and it appears to me
> to be in line with best practices from packaging systems of many other
> languages.
>
> What follows is my opinion, and it comes from a position of relative
> inexperience with Haskell and considerable experience operating on other
> language communities.
>
> I feel that the PVP should be encouraged and violations should be
> considered bugs. Users and concerned community members should report them
> to maintainers.
>

Please, please, please don't actually encourage this. There are many things
which I consider bad practice in Haskell code. I don't open up bug reports
against each package that disagrees with me. If a package on Hackage in
fact does *not* build with some dependency it claims to build against,
that's a perfectly reasonable thing to report (and I do so on a regular
basis via Stackage). But insisting that people add upper bounds when
they've clearly stated they do not want to is crossing the line.

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


More information about the Libraries mailing list