Definition
Semantic Versioning (SemVer)
Semantic versioning is a convention for numbering software releases as MAJOR.MINOR.PATCH, where each part signals the kind of change. You increment MAJOR for incompatible (breaking) changes, MINOR for backward-compatible new features, and PATCH for backward-compatible bug fixes. The version number itself communicates how risky an upgrade is, so dependents can update safely.
Key takeaways
- Semantic versioning numbers releases as MAJOR.MINOR.PATCH, where each part signals the kind of change.
- Increment MAJOR for breaking changes, MINOR for backward-compatible features, PATCH for backward-compatible bug fixes; bumping a part resets the lower ones to zero.
- The version string is a contract: dependents know whether an upgrade is safe, which powers automated dependency tooling and version ranges.
- It demands honest classification — labeling a breaking change as a minor bump silently breaks everyone downstream.
Defined by the SemVer 2.0.0 specification, semantic versioning turns a version string into a contract. Given a number like 2.4.1, the rules are precise: bump PATCH (2.4.2) for a backward-compatible bug fix, bump MINOR (2.5.0) when you add functionality in a backward-compatible way, and bump MAJOR (3.0.0) when you make a change that breaks the existing API. Bumping a higher component resets the lower ones to zero.
The value is communication without reading a changelog. A consumer who depends on 2.4.x knows that upgrading to 2.6.x is safe but 3.0.0 may require code changes. This underpins automated dependency tooling — package managers use version ranges like ^2.4.1 to accept compatible updates automatically while refusing breaking ones.
SemVer also accommodates pre-release and build metadata (for example 1.0.0-beta.2 or 1.0.0+build.7) and treats anything below 1.0.0 as unstable, where the API may change at any time. The discipline it demands is honest classification: calling a breaking change a minor bump silently breaks everyone downstream, which is the failure mode SemVer exists to prevent.
Planoda's API and SDK follow semantic versioning so integrators can pin to a major line and adopt compatible improvements without fear of an unannounced breaking change.
Related terms
- CI/CD (Continuous Integration / Continuous Delivery)CI/CD is the practice of automatically building, testing, and releasing code through a pipeline triggered by every change. Continuous integration merges and verifies work frequently to catch conflicts early; continuous delivery keeps the software always in a releasable state, often deploying automatically. Together they shorten the path from a commit to running in production.
- RollbackA rollback is reverting a system to a previous known-good state after a release introduces a problem. It is the fastest way to restore service when a deploy goes wrong: rather than diagnosing and forward-fixing under pressure, you return to the version that worked. A reliable, fast rollback path is a hallmark of mature deployment practice.
- Feature FlagA feature flag (or feature toggle) is a runtime switch that turns a piece of functionality on or off without deploying new code. It decouples deployment from release, letting teams ship code dark, roll a feature out gradually, target specific users, run experiments, and instantly disable a problem — all through configuration rather than a redeploy.
- Pull RequestA pull request (PR), also called a merge request, is a proposal to merge a set of code changes from one branch into another. It packages a diff with a description, opens it for review and discussion, runs automated checks, and serves as the gate where changes are inspected and approved before they enter the main codebase.
- Blue-Green DeploymentBlue-green deployment runs two identical production environments — one live (blue), one idle (green). You deploy the new release to the idle environment, verify it, then switch traffic over in a single cut. If anything goes wrong, you flip traffic back instantly. It enables near-zero-downtime releases and an immediate rollback path.