The PVP ought to mention dependency bounds (Was: Growing Haskell Platform)
johan.tibell at gmail.com
Tue Dec 11 17:14:47 CET 2012
On Tue, Dec 11, 2012 at 1:45 AM, Simon Marlow <marlowsd at gmail.com> wrote:
> I'm a bit lost. The example from your mail that started this thread *does*
> compile, because Cabal finds a valid install plan by avoiding the new
> version of B. It's working exactly as intended, isn't it? Then you said
> that the user might get confused about why the new B wasn't being used, to
> which the response is that we need better diagnostics.
> What's the problem you're getting at above?
The problem is one of two things, depending on how you look at it. On
the one hand, if we take "C-1.0 depends on A-1.0.0.*" to mean that C
states that it can work with any version of A-1.0.0, that is a lie (as
per the scenario in my original email) and the PVP needs to be
On the other hand, if you take "C-1.0 depends on A-1.0.0.*" to mean
that C states that it can work with the A-1.0.0 API then users and
developers might get confused when newer releases of libraries don't
get picked up even though the version bounds suggests that they would.
We could try to solve this by cabal telling the user about when this
situation appears, but understanding why package version conflicts
appear is already hard to understand for users.
I guess one reason I brought this up is that it hasn't really been
discussed before to my knowledge.
More information about the Libraries