SemVer Tools
Compare versions and suggest bumps
Enter two version strings first to compare ordering and change level immediately; release semantics are available in Advanced mode.
The full guide also includes pitfalls, worked examples, snippets, FAQs, and related tools for checking results or troubleshooting.
About this tool
Compare numeric version triples and calculate patch, minor, and major increments from Version A. The parser accepts only digit.digit.digit forms, including leading zeros. It does not implement prerelease precedence, build metadata, dependency ranges, or strict SemVer validation. Use safe-integer components and choose release significance from the actual code changes.
Failure Clinic (Common Pitfalls)
A numeric comparison is mistaken for full SemVer validation
Cause: Leading zeros are accepted, but prerelease tags, metadata, prefixes, and ranges are not. Numeric components use JavaScript Number and can lose precision above the safe-integer limit.
Fix: Use safe-integer core triples for this calculator. Package dependency resolution or strict SemVer validation requires a complete implementation; choose release significance from actual compatibility changes.
Production Snippets
Core comparison and arithmetic bumps
text
Version A: 01.2.3
Version B: 1.2.3
Comparison: equal
Patch from A: 1.2.4
Minor from A: 1.3.0
Major from A: 2.0.0
1.2.3-beta is rejected by this numeric-only parser.Frequently Asked Questions
Which version strings can I compare?
Only three nonnegative digit groups in major.minor.patch form. Leading zeros are accepted and converted to numbers, so this is not a strict SemVer syntax validator. Prerelease tags, build metadata, v prefixes, and dependency ranges are not supported.
What do the bump suggestions mean?
Suggestions are arithmetic increments from Version A: patch adds one to patch, minor adds one to minor and resets patch, and major adds one to major and resets the other two. They do not determine whether a code change is breaking.
Are arbitrarily large versions supported?
Components use JavaScript Number. Values or increments beyond Number.MAX_SAFE_INTEGER can lose precision; keep components within the safe integer range. Comparison is local and does not inspect a package registry or dependency graph.
Keep browsing