Semantic Versioning
A versioning scheme using MAJOR.MINOR.PATCH numbers to communicate the nature and impact of changes in software releases.
Also known as: SemVer, Semantic Version
Category: Software Development
Tags: software-engineering, releases, best-practices, communication, standards
Explanation
Semantic Versioning (SemVer) is a versioning scheme that uses three numbers (MAJOR.MINOR.PATCH) to communicate the nature of changes. Rules: (1) MAJOR version - increment for incompatible API changes (breaking changes), (2) MINOR version - increment for backwards-compatible new functionality, (3) PATCH version - increment for backwards-compatible bug fixes. Additional labels for pre-release (1.0.0-alpha) and build metadata (1.0.0+build123) are supported. Benefits include: clear communication of change impact, predictable dependency management, and informed upgrade decisions. The scheme helps answer: 'Can I safely upgrade?' A minor bump means new features but no breaking changes. A major bump signals careful review needed. SemVer is widely adopted in package managers (npm, pip, cargo) and has become the de facto standard for versioning libraries and APIs.
Related Concepts
← Back to all concepts