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 numberbased 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:MAJORversion MUST express when major/incompatible changes are madeMINORversion MAY express when functionality is added in a backward-compatible mannerPATCHversion 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 dateproduced 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.