Semantic Versioning (SemVer) is a widely adopted versioning convention that attaches explicit meaning to version numbers, enabling predictable dependency management and clear communication about software changes. Codified as a formal specification at semver.org, it structures versions as MAJOR.MINOR.PATCH to signal breaking changes, new features, and bug fixes respectively. Beyond the core numbering system, modern release management encompasses complementary practices including calendar-based versioning schemes (CalVer), conventional commit standards that automate version bumping, lock files that guarantee reproducible builds, and sophisticated tooling (semantic-release, changesets) that orchestrate the entire release workflow. One critical insight often overlooked: version precedence rules treat pre-release versions (e.g., 1.0.0-alpha) as lower than their release counterpart (1.0.0), meaning pre-releases are never selected by dependency resolvers unless explicitly requestedβa behavior that shapes how teams orchestrate alpha, beta, and RC promotion workflows.
What This Cheat Sheet Covers
This topic spans 20 focused tables and 148 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: SemVer Core Components
| Component | Example | Description |
|---|---|---|
| 200 | β’ Incremented for incompatible API changes that break backward compatibility β’ signals consumers must modify their code to upgrade. | |
| 150 | β’ Incremented for backward-compatible new features β’ existing functionality continues to work without changes. | |
| 143 | β’ Incremented for backward-compatible bug fixes β’ no new features added, only defect corrections. | |
1.0.0-alpha.1 | β’ Appended after PATCH with hyphen β’ denotes unstable versions not recommended for production β’ sorted alphanumerically in precedence rules. |