Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Semantic Versioning (SemVer)

Semantic versioning (SemVer) is a versioning system designed to convey meaningful information about software updates through a standardized format. It follows the structure MAJOR.MINOR.PATCH, where each segment represents a specific type of change. The MAJOR version is incremented for incompatible changes that may break backward compatibility, the MINOR version is updated for backward-compatible feature additions, and the PATCH version increases for backward-compatible bug fixes. This clear structure helps developers and users understand the impact of updates, manage dependencies, and ensure compatibility across different versions of a project. Semantic versioning promotes transparency and predictability in software development and distribution.

Semantic Versioning (SemVer) is a simple contract encoded in a version number: MAJOR.MINOR.PATCH. Bump the MAJOR for a breaking change, the MINOR for a backward-compatible feature, and the PATCH for a backward-compatible fix. That is the whole idea, and its power is that a consumer can read a version bump and immediately know whether they can upgrade safely or need to plan work — no changelog spelunking required.

  • MAJOR for breaking changes - Any change that could break existing consumers forces a MAJOR bump, making incompatibility loud and explicit.
  • MINOR for additive features - New, backward-compatible capability moves the MINOR digit, signaling “safe to adopt, nothing removed.”
  • PATCH for fixes - Bug fixes that change nothing about the contract move only the PATCH digit.
  • A machine-readable promise - The scheme is parseable, which is why dependency managers can automatically pin, range, and resolve versions with confidence.

In API operations SemVer is where versioning stops being a naming argument and becomes a promise about compatibility. The hard part is honesty — a lot of what teams ship as a “minor” release is quietly breaking, which is why I care more about detecting breaking changes against the OpenAPI contract than about the number itself. Applied well, SemVer gives both humans and agents a reliable signal for when an integration needs attention, and as machines increasingly manage their own dependencies, that clean signal is exactly what lets them upgrade without a human in the loop.

Referenced on the API Evangelist blog

Where this standard shows up across sixteen years of my writing at apievangelist.com — how it fits into API design, governance, and the agentic turn.