On Wed, Feb 26, 2014 at 1:47 PM, Alain O'Dea <alain.odea@gmail.com> wrote:
On Feb 26, 2014, at 7:11, Michael Snoyman <michael@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