Stefan Karrmann <S.Karrmann at web.de>, 2006-07-17 21.21 +0100:
> > 1. Add a field to the package description of foo (v1.4, say) that says
> > "I'm backwards-compatible with 1.3." When building, this relation
> > would have to be inspected to see whether any currently installed
> > version of foo satisfies the dependency specified by the mount.
> > 2. Declare a convention for version numbers to carry compatibility
> > information, like the OpenGL standard, for example: If the new
> > version is backwards-compatible, only the minor version number
> > changes. If it isn't, the major version number must be incremented.
>> I prefer 1. The FSF use 2 for its GNU software and others started with it,
> too. But after a while most of them tend to increase major numbers. E.g.
> 3.0, 3.11, 95, 98, 2000
Remember, that I would be proposing a _formal_ requirement of this convention.
And also that we're talking about Haskell libraries, not commercial software
like MS Windows, as your example seems to suggest. Further, I suspect your
mention of GNU projects starting with and later forgetting about such a
convention to be moot: They most likely didn't have a documented standard
requiring it and large body of software (and users) that assumes it. But the
former is what we could form and the latter is what will form. Like I said,
OpenGL is an example where such a scheme is in place, and everyone is very
happy. Also note my later remark in the original mail about "shifting" the
convention down by one component of the version number to free the major
version for increments at "psychologically" desirable points, whatever that
means.
Sven