---
title: "Semantic versioning (SemVer)"
slug: "semantic-versioning"
category: "glossary"
tags: ["glossary", "coding", "semver", "versioning", "releases"]
status: "stable"
last_updated: 2026-05-14
summary: "Semantic versioning (SemVer) uses MAJOR.MINOR.PATCH: MAJOR signals breaking changes, MINOR adds backward-compatible features, PATCH ships compatible fixes."
related:
  [
    "[[coding/git]]",
    "[[glossary/conventional-commits]]",
    "[[glossary/polyrepo]]",
    "[[file-organization/project-structure]]",
    "[[tooling/github]]",
    "[[coding/general-principles]]",
  ]
---

## Overview

This page is the atomic definition. The release-discipline context lives at [[coding/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

- [[glossary/conventional-commits]] - commit prefixes that automate the SemVer bump.
- [[coding/git]] - the release-discipline context, including tagged versions.
- [[glossary/polyrepo]] - cross-repo coordination relies on SemVer.
- [[file-organization/project-structure]] - package boundaries that get versioned.
- [[coding/general-principles]] - the broader principles around stable interfaces.

## Citing this term

> See [[glossary/semantic-versioning|Semantic versioning (SemVer)]] (llmbestpractices.com/glossary/semantic-versioning).

## Related

- [[coding/git]]
- [[glossary/conventional-commits]]
- [[glossary/polyrepo]]
- [[tooling/github]]
- [[coding/general-principles]]
