Semantic Versioning

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:

Semantic Versioning Schema

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

References