Hi, so with all the furor over dependency hell I've been thinking
about how to address the issue. I've come up with an approach that I'm
willing to try to implement, if it's sensible.
First is using explicitly versioned libraries and executables. For
example, using 'alex-3.0.2' instead of just 'alex'. Next is
implementing the suggestion for soft and hard upper bounds. Hard upper
bounds would be denoted by a duplicated first character of the
relevant operator, ie, <<, <<=, ===.
Finally, if an install fails because of dependency versioning issues,
automated support for fixing these issues would kick in, probably
after prompting the user if they want to attempt it, or after issuing
a command such as 'cabal repair'. There would be integration with bug
reporting and bug report search so that if there are problems that are
more than the user wants to deal with the bug report could be
submitted easily. This functionality would be available with the
command 'cabal submit-issue'. If the repair was successful patches
would be submitted to the maintainer after checking that similar
patches haven't been submitted already.
Maybe it could be useful for cabal to provide convenient means of
communicating with the package maintainer. For example, instead of
having to subscribe to the mailing list for gtk 'cabal submit-issue'
would present the results of search to see if the issue was already
brought up. If the user doesn't think anything relevant came up they
could then be presented with a form for filing a bug report. After
that the user would be kept in the loop without having to subscribe to
the mailing list.
So does this sound like a useful solution?