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:
major
version when you make incompatible API changes,minor
version when you add functionality in a backwards compatible manner, andpatch
version 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
metadata
must 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’))