Package Version Comparator
Compare two semantic versions (npm/NuGet style) side-by-side. Evaluate precedence, diff major/minor/patch changes, and check range satisfaction instantly.
Idle
Click "Compare Versions" or modify inputs to run semantic analysis...
Awaiting analysis...
SemVer Comparison Rules Reference
Precedence Order
Precedence is determined by comparing Major, Minor, and Patch integers numerically. Example: 1.9.0 < 1.10.0.
Pre-release Rules
A pre-release version has lower precedence than its associated normal version (e.g., 1.0.0-alpha < 1.0.0).
Build Metadata
Build metadata (e.g., +build.123) is ignored when evaluating version precedence or range compliance.
Frequently Asked Questions (FAQ)
Versions are compared element by element: major version first, then minor, then patch. If those are equal, pre-release tags are evaluated using ASCII alphabetical order for text identifiers and numerical order for numeric identifiers.
A caret range (
^1.2.3) allows changes that do not modify the left-most non-zero element (allowing minor and patch updates for 1.x.x). A tilde range (~1.2.3) only allows patch-level changes if a minor version is specified.
No. Pre-release tags like
-alpha, -beta, or -rc.1 designate unstable versions meant for testing prior to a formal public release.