On Friday, 26 September 2014 at 08:37:12 UTC, tn wrote:
On Friday, 26 September 2014 at 06:29:21 UTC, Dragos Carp wrote:
Though you could use prerelease and/or build suffixes (1.2.3-0w / 1.2.3+0w).

These are very close to what I would like to see.

Though, if I understand correctly, build suffix wouldn't work, as for example 1.2.3+0w and 1.2.3+1w would be treated as equal: "Build metadata SHOULD be ignored when determining version precedence. Thus two versions that differ only in the build metadata, have the same precedence." (semver.org)

I guess that prerelease suffixes would do the trick. The only problem is conceptual: "A pre-release version indicates that the version is unstable and might not satisfy the intended compatibility requirements as denoted by its associated normal version." (semver.org)

In semver library [1], the differences in build suffixes are a) "right" ordered (defined sort order) and not equal, and b) considered compatible.

a) SemVer("1.2.3+w.9") < SemVer("1.2.3+w.10")
   SemVer("1.2.3+w.9") != SemVer("1.2.3+w.10")

b) SemVer("1.2.3+w.9").satisfies(SemVerRange("1.2.3"))
   SemVer("1.2.3+w.10").satisfies(SemVerRange("1.2.3"))
SemVer("1.2.3+w.9").differAt(SemVer("1.0.0+w.10")) == VersionPart.BUILD


[1] http://code.dlang.org/packages/semver

Reply via email to