Release Management
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'))