
On Tue, Nov 8, 2011 at 16:57, Jochen Keil
On 08.11.2011 22:35, Rogan Creswick wrote:
Assuming the spirit of the PVP is followed, you can ignore the D-level version numbering, and depend on C-level numbering in a cabal file. That generally allows bugfix releases of your dependencies to be used without any changes to your code or cabal file, while telling cabal that API-breaking changes (marked by the higher version number slots) do not satisfy your application's requirements.
This is far from foolproof, but it is very convenient when it's followed. Sounds like libtool versioning to me, but I'm not the one to ask here.
And libtool got it from the versioning scheme Sun came up with for ELF shared objects (but is much stricter in its application, because the original wasn't quite enough to avoid compatible-version problems). Of course, some folks have made an art out of subverting it and some have completely ignored it (openssl, anyone?) and the result is things don't work anyway, which is why HP is being strict about the PVP. - From a user (meaning non-programmer) perspective this is a bit odd. As
long as you don't break your API you are stuck with a possibly low major version number which looks like alpha or beta software.
Considering that the majority of our users are on Linux, where quite often the pre-alpha-looking stuff is stable and the apparently stable release version is pre-alpha quality.... -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms