Am 02.10.2014 14:27, schrieb Ben Boeckel via Digitalmars-d-announce:
On Fri, Sep 26, 2014 at 06:29:19 +0000, Dragos Carp via Digitalmars-d-announce 
1.2.3.x is an invalid version number. Only 3 group numbers are
allowed [1]. Though you could use prerelease and/or build
suffixes (1.2.3-0w / 1.2.3+0w).

How would you version a library which wraps another with 4 version
components? Enforced semver to the limit that only 3 components are
supported seems a little heavy-handed to me.


The idea is to have an interoperable standard - modifying it in any way would break that, so that we could as well completely invent our own standard.

The way I see it is that the binding should be considered as individually versioned. It should usually start at 1.0.0 (maybe X.0.0, where X is the major version of the wrapped library, if that makes sense for the original version scheme) and be incremented purely according to SemVer. The version of the wrapped library can be documented as build metadata, but that's it.

To me a big argument against supporting something non-standard, such as a fourth version digit is that it facilitates blindly adopting a libraries original version scheme, even if that may work in a completely different way w.r.t. major, minor and patch versions.

But the idea of SemVer is that you can safely specify a version range such as 1.2.x and be sure to only get bugfixes, or 1.x.x and only get backwards compatible changes. Many other schemes don't have such guarantees, so directly translating them would be the a step to chaos.

Reply via email to