Free Online Semantic Versioning Validator & Comparison Tool
| Format | MAJOR.MINOR.PATCH |
|---|---|
| MAJOR | Incompatible API changes |
| MINOR | Backward-compatible new features |
| PATCH | Backward-compatible bug fixes |
| Prerelease | 1.0.0-alpha.1, 1.0.0-beta.2 |
| Build Metadata | 1.0.0+20130313144700 |
| Caret ^ | Compatible: ^1.2.3 = >=1.2.3 <2.0.0 |
| Tilde ~ | Approximate: ~1.2.3 = >=1.2.3 <1.3.0 |
Semantic Versioning (SemVer) is a versioning scheme with the format MAJOR.MINOR.PATCH. Increment MAJOR for incompatible API changes, MINOR for backward-compatible new features, and PATCH for backward-compatible bug fixes. This standard is used by npm, Maven, and virtually all modern package managers.
^1.2.3 allows updates that don't change the major version (>=1.2.3 <2.0.0) β useful for auto-updating minor features. ~1.2.3 only allows patch-level updates (>=1.2.3 <1.3.0) β more conservative and safer for production dependencies.
Prerelease versions add a hyphen and identifier after the version, such as 1.0.0-alpha.1, 2.0.0-beta.3, or 1.0.0-rc.1. They have lower precedence than the normal version. Common identifiers: alpha (internal testing), beta (public testing), rc (release candidate).
Use the caret ^ range in your dependencies. For example, "lodash": "^4.17.21" accepts all 4.x.x versions. Be careful with 0.x.x versions β ^0.2.3 is equivalent to ~0.2.3 because 0.x major versions may include breaking changes.