Semantic Versioning
A version-numbering convention where the number communicates the kind of change.
Semantic versioning assigns three numbers — major, minor, patch — with defined meanings: a major bump signals a breaking change, a minor bump a backward-compatible addition, a patch a backward-compatible fix. Pre-release and build identifiers can be appended.
The convention's value is that it lets a version range express a risk tolerance. Accepting compatible minor and patch updates while refusing majors is a policy that a range can encode, which is why automated dependency updating is possible at all.
Its weakness is that compatibility is a judgement, not a property a tool can compute. Whether a change breaks someone depends on what they relied on — including behaviour that was never part of the documented interface. A change that is minor by the letter of the specification can break real consumers, which is the observation behind Hyrum's law: with enough users, every observable behaviour of a system becomes something someone depends on.
The practical consequences are that a major bump deserves a migration path and a Deprecation window rather than a note, and that pinning exact versions is a reasonable posture for anything where reproducibility matters more than automatic updates. See Lockfile.
See also4
Hand-picked in the note itself — the neighbours worth reading next.
Deprecation
Marking something as superseded and scheduled for removal, without removing it yet.
Method9 connections
Lockfile
A generated file recording the exact dependency versions an install resolved to.
Version Control & Delivery8 connections
Conventional Commits
A lightweight convention giving commit messages a machine-readable type and scope.
Version Control & Delivery10 connections
Package Manager
The tool that resolves, fetches, and installs dependencies, and pins them for reproducibility.
Systems & Tooling10 connections
Related5
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from6
Notes elsewhere in the wiki that reach for this one.
- Conventional CommitsVersion Control & Delivery
A lightweight convention giving commit messages a machine-readable type and scope.
- DeprecationMethod
Marking something as superseded and scheduled for removal, without removing it yet.
- LockfileVersion Control & Delivery
A generated file recording the exact dependency versions an install resolved to.
- MonorepoSystems & Tooling
Several packages developed in one repository with shared tooling and atomic cross-package changes.
- Package ManagerSystems & Tooling
The tool that resolves, fetches, and installs dependencies, and pins them for reproducibility.
- Supply Chain SecurityVersion Control & Delivery
Protecting against compromise arriving through the code and tooling a project depends on.