Semver Range Tester
Semver Range Tester shows the whole accepted window, including the 0.x caret behaviour that catches people out. Runs entirely in your browser with no upload.
This works right here on your device — nothing gets sent out.
Tools
Semantic Versioning Range Tester
Frontend preview — no upload or external service.
Results
Using Semantic Versioning Range Tester to calculate and analyze your data.
How the Semver Range Tester works
- Enter the range as written in your manifest and a version to test against it.
- Read the full accepted range, which is usually wider than people expect for caret ranges.
- Check prerelease behaviour if you publish or consume them, since prereleases are excluded from ranges by default.
The method
Caret allows changes that do not modify the leftmost non-zero digit; tilde allows patch-level changes.
^1.2.3 means >=1.2.3 <2.0.0; ~1.2.3 means >=1.2.3 <1.3.0
Below 1.0.0 the caret behaves differently: ^0.2.3 allows only >=0.2.3 <0.3.0, because in 0.x the minor version is treated as breaking.
FAQ
What is the difference between caret and tilde?
Caret allows minor and patch updates; tilde allows only patch updates. ^1.2.3 accepts 1.9.0 while ~1.2.3 stops at 1.2.x.
Why does the caret behave differently below 1.0.0?
Because 0.x is considered unstable, so a minor bump is treated as potentially breaking. ^0.2.3 therefore behaves like a tilde and allows only 0.2.x.
Are prereleases included in ranges?
Not by default. ^1.2.3 does not match 1.9.0-beta.1, which surprises people publishing prereleases. Matching them requires an explicit prerelease tag in the range.
How we compare
| Feature | Online Tool Store | A CLI script | An IDE plugin |
|---|---|---|---|
| Shows full accepted range | ✓ | ✗ | ✓ |
| Prerelease handling | ✓ | ✗ | ✓ |
| Nothing uploaded | ✓ | Local | ✗ |
| No install | ✓ | ✗ | ✓ |
Semver Range Tester shows the whole accepted window, including the 0.x caret behaviour that catches people out.