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.

Package Version Comparator features

  • Available tool controls: Compare Versions.
  • Input and option fields: Version A (Base / Left):, Version B (Target / Right):, Optional Range Check against Version A:.

Practical guidance for Package Version Comparator

Calculators are helpful for quick estimates when the input units are clear. Check each value and unit before comparing results, especially when rounding or workload assumptions matter. Pay attention to these page fields: Version A (Base / Left):, Version B (Target / Right):, Optional Range Check against Version A:. Confirm which fields are inputs, options, or output areas before processing.

Version ranges depend on package-manager semantics and project lockfiles. Compare the result with the package manager and registry used by the project.

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.