Constrained Semantic Versioning v1.0.0-alpha

Summary

This version is deprecated. v1.0.0-beta removes 'pi' from the prerelease name so that the initial can be used ('pi' conflicted with 'prerelease').
It is replaced by 'chi': PrereleaseName must now be alpha, beta, chi, delta, epsilon, gamma, iota, kappa, lambda, mu, omicron, prerelease, rc.

CSemVer is an operational subset of SemVer (http://semver.org) that is defined around one strong idea: CSemVer versions are totally ordered, each version corresponds to a unique 64 bits unsigned integer ranging from 1 (v0.0.0-alpha) to 13000100000000000000 (v99999.99999.9999).

Specification

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

CSemVer versions follow Semantic Versioning rules and adds some constraints:
  1. Syntax of a CSemVer MUST be:

    [v|V]Major.Minor.Patch[-PreReleaseName[.PreReleaseNumber[.PreReleaseFix]]][+BuildMetaData]

  2. CSemVer versions MAY be prefixed with a 'v' or 'V' (GitHub convention). This is the only extension that is not supported by SemVer.

  3. The Major part MUST be defined between 0 and 99999.

  4. The Minor part MUST be defined between 0 and 99999.

  5. The Patch part MUST be defined between 0 and 9999.

  6. The PrereleaseName MAY be denoted by appending a hyphen and a name that MUST be one of the 13 values of the following list (ordered from 0 to 12): alpha, beta, delta, epsilon, gamma, iota, kappa, lambda, mu, omicron, pi, prerelease, rc.

    Any other name not listed in this set MUST be either mapped to/considered as "prerelease" OR considered syntactically invalid.

  7. The PrereleaseNumber MAY be denoted by appending a dot and a number that MUST be defined between 0 and 99.

  8. The PrereleaseFix MAY be denoted by appending a dot and a number that MUST be defined between 1 and 99.

  9. The PrereleaseNumber 0 MUST appear only when a PrereleaseFix is specified to denote a fix of a first prerelease (v4.3.2-rc.0.2 is the second fix of v4.3.2-rc).

About

The Constrained Semantic Versioning specification is authored by Invenietis.

If you'd like to leave feedback, please open an issue on GitHub.

License

Creative Commons - CC BY 3.0