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.