Semantic Versioning (SemVer)
Details
- Full Name
-
Semantic Versioning Specification
Core Concepts:
- Version format
-
- MAJOR
-
Incompatible API changes (breaking changes)
- MINOR
-
Backward-compatible functionality additions
- PATCH
-
Backward-compatible bug fixes
- Pre-release versions
-
Append hyphen and identifiers (e.g., 1.0.0-alpha.1)
- Build metadata
-
Append plus sign and identifiers (e.g., 1.0.0+20241111)
- Version precedence
-
Clear rules for version comparison
- Initial development
-
0.y.z for initial development (API unstable)
- Public API declaration
-
Once public API declared, version dependencies matter
- Key Proponent
-
Tom Preston-Werner
When to Use:
-
Libraries and APIs consumed by other software
-
Software with defined public interfaces
-
Projects requiring dependency management
-
Communication of change impact to users/consumers