Overview
This page is the atomic definition. The release-discipline context lives at git.
Definition
Semantic versioning (SemVer) is a version-number scheme defined by MAJOR.MINOR.PATCH (for example, 3.7.2). MAJOR increments on backward-incompatible API changes, MINOR on backward-compatible new features, and PATCH on backward-compatible bug fixes. Pre-release tags (-alpha.1, -rc.2) and build metadata (+sha.abc123) attach via hyphen and plus suffixes. The specification is maintained at semver.org and underpins package registries like npm, PyPI, and Cargo.
When it applies
Use SemVer for any package or library with public consumers. Skip it for application monorepos that release as a single artifact and don’t expose an SDK.
Example
A library at 2.4.7 ships a backward-compatible bug fix and releases 2.4.8. The next release adds a new optional parameter and becomes 2.5.0. A later release removes a deprecated function and bumps to 3.0.0.
Related concepts
- conventional-commits - commit prefixes that automate the SemVer bump.
- git - the release-discipline context, including tagged versions.
- polyrepo - cross-repo coordination relies on SemVer.
- project-structure - package boundaries that get versioned.
- general-principles - the broader principles around stable interfaces.
Citing this term
See Semantic versioning (SemVer) (llmbestpractices.com/glossary/semantic-versioning).