Semantic Versioning
Semantic Versioning, often abbreviated SemVer, is a widely adopted versioning system designed to communicate changes in software clearly and predictably.
The official specification and guideslines are available at https://semver.org.
Version Structure
It uses a three-part version number: MAJOR . MINOR . PATCH
- The
MAJOR
version increases when incompatible changes are introduced - The
MINOR
version increases when backward-compatible changes are made - The
PATCH
version increases for backward-compatible bug fixes
Followed by optional suffixes: - PRERELEASE + BUILDINFO
PRERELEASE
can be alpha
or beta
and indicates an unstable Stability Level (see below)
BUILDINFO contains build metadata, and is ignored when determining version precedence
All together:
This structure helps developers and users understand the impact of a new version at a glance, making it easier to manage dependencies and ensure compatibility in software systems.
Shorthand format
Where only the compatibility information is relevant, we refer to versions using
the shorthand form vX
where X
is the MAJOR
stable version, or vXalphaY
when X
is a pre-release version at iteration Y
(X.0.0-alpha.Y
).
Examples:
9.78.1721252454+7539d97
known as compatibility version:v9
1.0.0-alpha
known as compatibility version:v1alpha
1.0.0-alpha.2
known as compatibility version:v1alpha2