website-docs/docs/specifications/versioning/versions/1.md
2024-03-02 18:26:21 +01:00

91 lines
No EOL
2.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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>