DevConvertor

Semver Checker

Compare two semantic versions to see which is newer and what kind of change separates them, or check whether a version satisfies a range like ^1.2.3, ~1.2.3, or >=1.2.0 <2.0.0. Built on the same semver implementation npm uses, so pre-release precedence and caret behaviour below 1.0.0 match real dependency resolution.

Semantic Versioning 2.0.0

ReadyDeveloper UtilitiesFree · No account required

Features

  • Compare two versions, with the type of change identified
  • Test any npm-style range, including caret, tilde, x-ranges, and unions
  • Major, minor, patch, pre-release, and build metadata broken out
  • Reference table of common ranges, clickable to try them

How to use

  1. Pick Compare versions or Check a range.
  2. Enter the versions or the version and range.
  3. Read the result and its explanation — both update as you type.

FAQ

Why does ^0.2.3 behave differently from ^1.2.3?
Below 1.0.0, semver treats every minor bump as potentially breaking, so ^0.2.3 resolves to >=0.2.3 <0.3.0 — patch updates only. From 1.0.0 onward, ^1.2.3 allows anything up to but excluding 2.0.0.
Why doesn't my pre-release satisfy the range?
By default npm excludes pre-releases unless the range itself names one. 1.3.0-beta.1 does not satisfy ^1.2.3, even though it sits numerically inside it — you'd need a range like >=1.3.0-beta.1.
Does build metadata affect ordering?
No. Per the spec, build metadata after a + is ignored entirely when comparing precedence, so 1.0.0+build.1 and 1.0.0+build.9 are the same version.
Which implementation is this using?
The semver package — the same one npm itself uses — rather than a hand-written parser, so the edge cases match real dependency resolution.