Semantic Versioning (SemVer) is a widely adopted standard for naming software versions. It follows this format:
1
MAJOR.MINOR.PATCH
For example:
1
v1.0.0
Each part of the version number has a specific meaning:
MAJOR: Significant changes that break backward compatibility.
MINOR: New features that are backward compatible.
PATCH: Bug fixes and small improvements that do not change functionality.
Examples of Stable Releases:
Version
Description
v1.0.0
First stable release
v1.1.0
Adds new features, backward compatible
v1.1.1
Bug fix release, backward compatible
v2.0.0
Breaking changes introduced
Pre-release Versions (Testing Versions)
Before an official stable release, you may want to publish a pre-release version for testing purposes. These versions contain experimental features or improvements that need validation.
Naming Format for Pre-release Versions:
1
MAJOR.MINOR.PATCH-identifier.version
Identifier
Meaning
-alpha
Internal testing version (unstable)
-beta
Public testing version (feature-complete but may contain bugs)
-rc
Release Candidate (nearly stable, final testing)
-snapshot
Nightly or in-development snapshot
Examples of Pre-release Versions:
Version
Description
v1.0.0-alpha.1
First alpha version (internal testing)
v1.0.0-beta.2
Second beta version (public testing)
v1.0.0-rc.1
First release candidate
v1.0.0
Final stable version
Other Naming Conventions
In some cases, you might want to add metadata or build information to the version number.
Version
Description
v1.0.0+build20240205
Includes build metadata (doesn’t affect version sorting)