ZenovayTools

Semver Calculator

Semantic versioning calculator — bump versions, parse semver strings, and check if a version satisfies a version range.

Parsed Version

Major

1

Minor

2

Patch

3

Bumped Versions

Patch1.2.4Bug fix / minor change
Minor1.3.0New feature (backwards compatible)
Major2.0.0Breaking change

Version Range Checker

Satisfies

How to Use Semver Calculator

  1. 1Enter a semantic version string (e.g., 1.2.3).
  2. 2See the bumped major, minor, and patch versions.
  3. 3Enter a version range to check compatibility.
  4. 4Add pre-release identifiers and build metadata.
Zenovay

Privacy-first analytics for your website

Understand your visitors without invasive tracking. GDPR compliant, lightweight, and powerful.

Explore Zenovay

Frequently Asked Questions

What is Semantic Versioning?
Semantic Versioning (semver) is a versioning scheme with the format MAJOR.MINOR.PATCH: MAJOR — incompatible API changes; MINOR — new backwards-compatible features; PATCH — backwards-compatible bug fixes. For example: 1.0.0 → 1.0.1 (patch fix), 1.0.1 → 1.1.0 (new feature), 1.1.0 → 2.0.0 (breaking change). Pre-release versions use a hyphen: 1.0.0-alpha.1, 1.0.0-beta.2, 1.0.0-rc.1. Build metadata uses +: 1.0.0+build.123.
What do npm version range specifiers mean?
^1.2.3 (caret) — allows MINOR and PATCH updates: >=1.2.3 <2.0.0. Commonly used in package.json. ~1.2.3 (tilde) — allows only PATCH updates: >=1.2.3 <1.3.0. Stricter. >=1.2.3 — any version at or above. 1.2.3 — exact version only. * — any version. 1.x or 1.X — any patch for major 1. 1.2.x — any patch for 1.2. Ranges can be combined: >=1.0.0 <2.0.0 (equivalent to ^1.0.0 for non-zero major).
When should I bump major vs minor vs patch?
Bump PATCH for: bug fixes, security patches, performance improvements, documentation changes — nothing that changes the public API. Bump MINOR for: new features, new functions/methods, deprecating existing functionality (but not removing it) — all backwards compatible. Bump MAJOR for: removing or renaming public APIs, changing function signatures in incompatible ways, changing default behavior that was previously stable. When in doubt, use MINOR — you can always release a MAJOR later if needed.
What is the difference between 0.x.y and 1.x.y versioning?
Under semver, 0.MAJOR.MINOR indicates initial development where anything may change. The standard patch/minor/major semantics do not strictly apply below 1.0.0 — breaking changes can happen in MINOR bumps. Many projects use 0.x.y during development and release 1.0.0 when the API is stable. npm and other package managers respect this and treat ^0.1.0 as >=0.1.0 <0.2.0 (not the usual caret behavior), making ^0.x.y effectively a tilde.
What is a release candidate and when should I use it?
A release candidate (rc) is a pre-release version that could become the final release if no bugs are found: 1.0.0-rc.1, 1.0.0-rc.2. Pre-release progression typically goes: alpha (early, unstable) → beta (feature complete, may have bugs) → rc (production-ready candidate). Pre-release versions have lower precedence than the release: 1.0.0-rc.1 < 1.0.0. They are excluded from most package managers' semver range resolution unless explicitly requested.