Skip to content
LiveNext 15:26:46

Definition

What is Semantic versioning?

Semantic versioning is Semantic versioning is a numbering scheme, MAJOR.MINOR.PATCH, where each number tells you whether an update breaks existing code, adds features safely, or only fixes bugs.

Software updates arrive with numbers like 1.4.2. Semantic versioning, often shortened to semver, is a rule for what those three numbers promise. It is the reason a developer can read a version bump and know, before installing anything, how risky the upgrade is.

The three numbers

A semver version has the form MAJOR.MINOR.PATCH. The official specification describes each part this way:

  • MAJOR goes up when you make incompatible changes to the public API. Code written against the old version may stop working.
  • MINOR goes up when you add functionality in a backward compatible way. Your existing code keeps working, and new features are available if you want them.
  • PATCH goes up when you make backward compatible bug fixes. Nothing new, nothing broken.

Think of it like a restaurant menu. A patch fixes a typo. A minor adds a dish. A major swaps the whole menu, so your usual order may be gone.

What "version 1.0.0" means

The specification says major version zero (0.y.z) is for initial development, and that anything may change at any time. Version 1.0.0 defines the public API. So a project reaching 1.0 is making a promise: from here on, breaking changes will be announced with a new major number.

Why it matters when you use AI tools

Much of the AI stack is open source software that other software depends on: inference engines, agent frameworks, SDKs, model-serving tools. If your app depends on one of them, semver is what lets you set a rule such as "accept any 1.x update" and trust that it will not break your build.

Without that promise, every update is a gamble. Teams end up pinning an exact version and never upgrading, which means they also skip security fixes.

Limits to keep in mind

Semver is a promise by the maintainers, not something enforced by the computer. A project can break its own rules by accident, and what counts as the "public API" has to be defined by the project. For libraries with a C interface, that also includes the binary compatibility of the compiled code, which is easy to break without noticing.

Semver also says nothing about how good a release is. A model, a dataset or a prompt library usually does not follow it, because "backward compatible" is hard to define when behavior changes statistically.

How it relates to other terms

Versioning is a cousin of model deprecation, where a provider retires a model on a schedule you have to plan around. It also matters for model context protocol servers and other tools that agents call, since a breaking change in a tool can quietly break an AI agent that depends on it.

The practical habit is simple. Read the major number first. If it did not change, the upgrade is meant to be safe. If it did, read the release notes before you update.

Questions people ask

What does MAJOR.MINOR.PATCH mean?

MAJOR changes when a release breaks compatibility, MINOR when it adds features without breaking anything, and PATCH when it only fixes bugs, per the semantic versioning specification.

What does version 1.0.0 mean in semantic versioning?

It marks the point where the public API is defined. Versions 0.y.z are for initial development, when anything may change at any time.

Semantic versioning in the news