Version Numbering
Why Do We Need a Versioning Standard?
To ensure that version metadata is gathered and used consistently across various types of software deployed.
The Standard
There are three REQUIRED pieces of version metadata we MUST gather for each software build:
- A
version number
based on the industry standard Semantic Versioning Specification v2.0.0 MUST be followed. -
A version number MUST consist of a number triplet in the format:
MAJOR.MINOR.PATCH
:MAJOR
version MUST express when major/incompatible changes are madeMINOR
version MAY express when functionality is added in a backward-compatible mannerPATCH
version MAY express when you make backwards-compatible bug fixes
-
Libraries that are pre-released (e.g. during development in a PR) MUST be marked as pre-release.
- Pre-releases MUST follow the Semantic Versioning specification and SHOULD adhere to package manager naming conventions.
-
The
build date
produced by a pipeline SHOULD be a monotonically increasing number. It is RECOMMENDED to be Unix epoch time. This acts as a useful gauge of the relative age of the build.