Skip to main content

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