--- sidebar_position: 2 title: "1" description: "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 |