Skip to main content

Semver Validator & Analyzer

Parse, validate, and compare Semantic Versioning strings. Supports SemVer 2.0, pre-release tags, and build metadata.

SemVer 2.0.0Version ComparePre-release SupportInstant Validation
Valid semver
Major1
Minor2
Patch3
Pre-releasealpha.1
Build Metadatabuild.456
vs
1.2.3 < 1.2.4

How to Use

1

Paste a version string

Enter any semver-like string — npm package versions, GitHub release tags, or Python package versions.

2

See the parsed breakdown

Instantly see MAJOR, MINOR, PATCH, pre-release identifier, and build metadata split out clearly.

3

Compare two versions

Enter two version strings to get a definitive result: which is greater, lesser, or equal.

Common Version Patterns

VersionWhat It Means
1.0.0First stable release — production ready
2.0.0Breaking API change — MAJOR bump
1.3.0New backwards-compatible feature — MINOR bump
1.2.7Bug fix only — PATCH bump
1.0.0-alpha.1Pre-release: alpha stage, not stable
1.0.0-beta.3Pre-release: beta, feature-complete but unpolished
1.0.0-rc.1Release candidate — last step before stable
2.1.0+build.20241005With build metadata (ignored in precedence)

Click any row to load it into the validator above.

What Is Semantic Versioning?

Semantic Versioning (SemVer) is a versioning convention defined at semver.org that uses three numbers: MAJOR.MINOR.PATCH. A MAJOR increment signals a breaking change, MINOR signals a new backwards-compatible feature, and PATCH signals a backwards-compatible bug fix.

Pre-release identifiers like -alpha.1, -beta.2, or -rc.1 indicate versions that are not yet stable. In precedence order, a pre-release version is always lower than its release: 1.0.0-alpha < 1.0.0.

Build metadata (appended with +) is ignored when determining version precedence — two versions that differ only in build metadata are considered equal.

SemVer is used by npm, PyPI, Cargo, RubyGems, and most modern package managers. The ^ and ~ range operators in package.json are based on semver precedence rules.