2.5 KiB
sidebar_position | title | description |
---|---|---|
2 | 1 | Defines StarOpenSource's versioning system |
Version 1
Format
The StarOpenSource versioning system has four so called vectors. These are: Release, Type, Typerelease and Fork.
Release
This the release number and should be used for major changes. It's equivalent to the major and minor numbers in the semantic versioning system. It starts at 1.
Type
This can be one of four types: Release (r), Releasecandidate (rc), Beta (b) and Alpha (a)
Typerelease
This should be the number of releases, releasecandidates, betas or alphas in your current release. It starts at 0.
Fork
This should be used for identifying forks. This is most commonly used in a soft fork. You can leave this one empty.
Converting to SemVer
You can convert the StarOpenSource versioning system into the semantic versioning system.
tl;dr
SOSVS:
Release: 5
Type: Releasecandidate
Typerelease: 7
Fork: example
Semantic: 5.2.7-example
Major
The major number is equal to the release number. You don't need to change anything here.
Minor
The minor number should be set to the type. Set this to 3 for releases, 2 for releasecandidates, 1 for betas and finally to 0 for alphas.
Patch
The patch number is the same as the typerelease number. Again, you don't need to change anything here.
Fork
Simply append a dash and then your fork to SemVer.
Comparison
This table compares features between this specification, semantic versioning and simply increasing a build number without any modification.
Feature | SOSVS | SemVer | Build number |
---|---|---|---|
Easy to understand | Yes | Yes | Yes |
Compatible w/ SemVer | Yes | ⠀⠀⠀⠀⠀⠀⠀⠀⠀ | No |
Version type identification | Yes | No | No |
Has alpha/beta/rc/release built-in | Yes | Only 'pre-release' | No |
Forks | Yes | Yes | No |
Highlights incompatibilities | Partial | Yes | No |
Build number | No | Yes | Yes |