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.

Citing this term

See Semantic versioning (SemVer) (llmbestpractices.com/glossary/semantic-versioning).