Semantic Version (SemVer) Comparator
Compare two version strings and see exactly why one outranks the other, per semver.org.
Every comparison runs locally in your browser. Build metadata (a "+build" suffix) is parsed but ignored when determining precedence, per the spec.
Result
1.10.0-beta.2 is greater
1.2.3
major 1 · minor 2 · patch 3
1.10.0-beta.2
major 1 · minor 10 · patch 0 · pre-release beta.2
For informational and educational purposes only — not professional or technical advice, and not a substitute for consulting a qualified professional about your specific situation. TrueMeasureKit is not liable for decisions made based on these results. See our Terms of Service.
Why "1.10.0" beats "1.2.3" even though "2" > "1"
Each of major, minor, and patch is compared as a full number, not digit by digit — 10 is greater than 2 as a number, even though the character "2" would sort higher than "1" in a plain string comparison. A version with a pre-release tag ("-beta", "-rc.1") always ranks below the same core version without one, since the whole point of a pre-release is that it precedes the real release. Within two pre-release tags, numeric segments compare as numbers and everything else compares as text, and having more segments beats being a prefix of the other — which is why "1.0.0-alpha.1" outranks "1.0.0-alpha" but "1.0.0-alpha.beta" still outranks "1.0.0-alpha.1", per the semver.org specification.
Frequently asked questions
What do the three semver numbers mean?
MAJOR.MINOR.PATCH — major increments for breaking changes, minor for backward-compatible new features, and patch for backward-compatible bug fixes, per the semver.org specification most package ecosystems follow.
How are pre-release versions like 1.0.0-beta compared?
Per spec, any pre-release version (with a hyphen suffix) is considered lower precedence than the equivalent release version — so 1.0.0-beta is ranked below 1.0.0, even though the core version numbers match.