SemVer Version Calculator
Calculate Semantic Versioning release bumps, evaluate caret (^) and tilde (~) ranges, and audit dependency constraints.
Semantic Versioning (SemVer 2.0.0) Analyzer
Inspect MAJOR.MINOR.PATCH segments, calculate release bumps, and evaluate package manager ranges
Automated Release Bumps (npm version / cargo bump)
Dependency Range Evaluator (npm package.json / Pipfile)
| Candidate Version | Range (^1.2.0) Satisfied? |
|---|---|
| v1.4.2 | Allowed |
| v1.4.3 | Allowed |
| v1.5.0 | Allowed |
| v2.0.0 | Blocked |
| v0.9.0 | Blocked |
| v1.0.0 | Blocked |
| v2.0.0 | Blocked |
Preventing Dependency Hell with Semantic Versioning
Modern software engineering relies on thousands of open-source dependencies. Semantic Versioning provides a universal contract between library authors and software developers, establishing explicit rules about which updates are safe to ingest automatically and which require code audits. Understanding SemVer range operators protects codebases against unexpected breaking builds.
Use Cases
- ✓Dependency Range Auditing (package.json)
Verify exactly which upstream package updates npm, yarn, or pnpm will install when building your production applications.
- ✓Automated Release CI/CD Workflows
Determine whether pending Git commits or semantic-release pull requests require a PATCH, MINOR, or breaking MAJOR version bump.
- ✓Understanding Caret (^) vs Tilde (~)
Clarify how `^1.2.3` differs from `~1.2.3`, especially when managing critical zero-major (`0.y.z`) pre-v1.0 ecosystem libraries.
- ✓Pre-Release Tagging & Canary Builds
Formulate valid pre-release tags (`1.2.3-alpha.0`, `1.2.3-rc.1`) that satisfy packaging registries and automated semver sorting.
Key Capabilities
Instant Release Bump Matrix
Computes immediate next release strings for Patch (Bug fixes), Minor (New features), and Major (Breaking API changes).
Interactive Range Satisfaction Checker
Evaluates arbitrary SemVer range expressions against candidate releases to highlight allowed and blocked versions.
Zero-Major (0.x.x) Corner Case Handling
Correctly implements the SemVer 2.0.0 specification where zero-major versions treat minor bumps as breaking changes.
Pre-Release & Build Metadata Support
Full support for alphanumeric pre-release identifiers (`-beta.1`) and build metadata suffixes (`+20260913`).
Frequently Asked Questions
What is Semantic Versioning (SemVer)?
Semantic Versioning (SemVer 2.0.0) is a three-part version numbering system in the format MAJOR.MINOR.PATCH. Increment MAJOR for backwards-incompatible breaking API changes, MINOR for backwards-compatible new functionality, and PATCH for backwards-compatible bug fixes.
What is the difference between Caret (^) and Tilde (~)?
The tilde (`~1.2.3`) allows patch updates only (e.g. `>=1.2.3 <1.3.0`), locking the minor version. The caret (`^1.2.3`) allows both minor and patch updates as long as they don't break the major version (e.g. `>=1.2.3 <2.0.0`).
How does Caret (^) behave on versions starting with 0 (e.g. ^0.2.3)?
Under SemVer specifications, the initial 0.y.z development phase indicates an unstable API. Therefore, `^0.2.3` only permits patch bumps (`>=0.2.3 <0.3.0`) because a bump to 0.3.0 could introduce breaking changes.
What are Pre-Release tags in SemVer?
A pre-release version is denoted by appending a hyphen and dot-separated identifiers to the patch number (e.g. `1.0.0-alpha.1`, `1.0.0-rc.2`). Pre-release versions have lower precedence than the associated normal version.
More Developer Tools
Need a Brain Break? ☕
Done working on your task? Take a quick 60-second break, test your reflexes, and flap through infinite pixel obstacles in Sky Flap!