Semantic Versioning (SemVer) Calculator & Range Tester

Plan version bumps (Major, Minor, Patch, Pre-release) and test npm/cargo caret (^) and tilde (~) range resolution rules.

โœ“ Valid SemVer 2.0.0
MAJOR (Breaking)
2
MINOR (Feature)
4
PATCH (Bug Fix)
1
Prerelease Tag
None
Next Release Bump Options
Major (Breaking Change)v3.0.0
Minor (New Feature)v2.5.0
Patch (Bug Fix)v2.4.2
Release Candidate (RC)v2.4.2-rc.0
NPM / Cargo Version Range Resolution Tester
Version 2.5.3 satisfies ^2.4.0

Caret (^) allows minor and patch updates without changing the leftmost non-zero major version.

Understanding Semantic Versioning 2.0.0 (SemVer)

Semantic Versioning (SemVer) is a universal versioning specification formatted as MAJOR.MINOR.PATCH. It establishes a formal contract between library maintainers and consumers regarding backward compatibility:

  • MAJOR: Incremented when making incompatible, breaking API changes.
  • MINOR: Incremented when adding functionality in a backward-compatible manner.
  • PATCH: Incremented when making backward-compatible bug fixes.

Caret (^) vs Tilde (~) in package.json

  • Caret (^1.2.3): Allows updates that do not modify the leftmost non-zero digit. For ^1.2.3, npm will accept 1.3.0 or 1.9.9, but blocks 2.0.0.
  • Tilde (~1.2.3): Allows only patch-level bug fixes. For ~1.2.3, npm will accept 1.2.9, but blocks 1.3.0.