91 lines
2.5 KiB
Markdown
91 lines
2.5 KiB
Markdown
|
---
|
|||
|
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.
|
|||
|
<table>
|
|||
|
<tr>
|
|||
|
<th>Feature</th>
|
|||
|
<th>SOSVS</th>
|
|||
|
<th>SemVer</th>
|
|||
|
<th>Build number</th>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<th>Easy to understand</th>
|
|||
|
<th>Yes</th>
|
|||
|
<th>Yes</th>
|
|||
|
<th>Yes</th>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<th>Compatible w/ SemVer</th>
|
|||
|
<th>Yes</th>
|
|||
|
<th><a href="https://piped.staropensource.de/watch?v=dQw4w9WgXcQ">⠀⠀⠀⠀⠀⠀⠀⠀⠀</a></th> <!-- Let's rickroll those idiots -->
|
|||
|
<th>No</th>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<th>Version type identification</th>
|
|||
|
<th>Yes</th>
|
|||
|
<th>No</th>
|
|||
|
<th>No</th>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<th>Has alpha/beta/rc/release built-in</th>
|
|||
|
<th>Yes</th>
|
|||
|
<th>Only 'pre-release'</th>
|
|||
|
<th>No</th>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<th>Forks</th>
|
|||
|
<th>Yes</th>
|
|||
|
<th>Yes</th>
|
|||
|
<th>No</th>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<th>Highlights incompatibilities</th>
|
|||
|
<th>Partial</th>
|
|||
|
<th>Yes</th>
|
|||
|
<th>No</th>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<th>Build number</th>
|
|||
|
<th>No</th>
|
|||
|
<th>Yes</th>
|
|||
|
<th>Yes</th>
|
|||
|
</tr>
|
|||
|
</table>
|