Semantic Versioning
Freemius supports a variation of Semantic Versioning 2.0.0:
major.minor[.patch[-pre_major[.pre_minor[.pre_patch]]]][+metadata]
Given a version number major.minor.patch, increment the:
majorversion when you make incompatible API changes,minorversion when you add functionality in a backwards compatible manner, andpatchversion when you make backwards compatible bug fixes.- A pre-release version may be denoted by appending a hyphen (
-) and a series of dot separated identifiers immediately following the patch version. Identifiers must comprise only ASCII alphanumerics and hyphens[0-9A-Za-z-]. Identifiers must not be empty. Numeric identifiers must not include leading zeroes. Pre-release versions have a lower precedence than the associated normal version. 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. Examples:1.0.0-alpha,1.0.0-alpha.1,1.0.0-0.3.7,1.0.0-x.7.z.92. - Build
metadatamust comprise only ASCII alphanumerics and hyphens[0-9A-Za-z-].
Valid version examples:
* 1.2.7-alpha
* 1.2.7-alpha.1
* 1.2.7-beta
* 1.2.7-rc.2
* 1.2.7
* 1.2.8-rc.1+20210411
Important versions hirerachy:
* 1.2-beta < 1.2 < 1.2.0 < 1.2.1 < 1.2.2 < 1.2.10
* 1.2.7-alpha < 1.2.7-alpha.1 < 1.2.7-beta < 1.2.7-rc.2 < 1.2.7
* 1.2+20210411 == 1.2+whatever
* 1.2.7-RC < 1.2.7.rc (ASCII(‘UPPERCASE’) < ASCII(‘lowercase’))