Semantic Versioning

Updated Friday, 08 December 2023 by Ryan Kueter
Semantic Versioning (SemVer) is a standard convention sometimes used to version software. The purpose of versioning is for developers and end users to distinguish between the different versions of the software, which may contain different features or bugs. Developers are certainly not required to follow semantic versioning as any versioning schema will work. However, this creates a common standard that most developers will understand.

Semantic versioning follows the pattern:


X.Y.Z

Example:

2.12.5067

X – Major Version, Breaking Changes, No Backwards Compatibility


The major version (X) is incremented from zero to one when the software becomes production ready (e.g., 1.0.0). The major version may also be incremented when breaking changes occur or when the software is no longer backwards compatible. When the major version is incremented, the minor version and patch version are set to 0.

Y – Minor Version, Features & Patches


The minor version (Y) is incremented when new features, bug fixes, or patches are released. First versions will typically start with 0.1.0. And every time the minor version is incremented, the patch version is set to 0.

Z – Patch Release, Bug Fixes


The patch release (Z) are the most common daily releases. Every time a bug is fixed and the fix is released, this value is incremented. 

Additional Resources