compare
Compares two version strings, according to the given scheme.
'semver' (default) — SemVer 2.0.0 precedence rules:
- Core version: MAJOR.MINOR.PATCH
- Pre-release: -alpha, -beta.1, -rc.1, etc. (sorts below the plain release)
- Build metadata: +build, +sha.abc123 (ignored in comparison per spec)
- Optional ‘v’ prefix
'gentoo' — Gentoo/Portage ebuild version ordering (see ParsedGentooVersion):
numeric components, then letter suffix, then suffix segment (alpha/beta/pre/rc sort
below the plain release, p sorts above it), then -r revision. Note the key difference
from SemVer: a -r revision is not a prerelease and sorts above the base version.
Available since v1.9.0
Import
Section titled “Import”Signature
Section titled “Signature”Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
version1 | string | First version string |
version2 | string | Second version string |
scheme | VersionScheme | Which version scheme to compare `version1`/`version2` as. Defaults to `‘semver’`. |
Returns
Section titled “Returns”number — -1 if version1 < version2, 0 if equal, 1 if version1 > version2
Examples
Section titled “Examples”Compare two semver versions
Section titled “Compare two semver versions”Returns -1, 0, or 1 based on SemVer ordering.
Prerelease is lower than release
Section titled “Prerelease is lower than release”A prerelease version is always less than the release.
Gentoo: a revision sorts above its base version
Section titled “Gentoo: a revision sorts above its base version”Unlike SemVer’s ’-’ (prerelease, sorts below release), Gentoo’s ‘-r’ revision sorts above it.
Related Types
Section titled “Related Types”VersionScheme
Section titled “VersionScheme”Identifies which version scheme parse/compare should use to interpret a
version string. Defaults to 'semver' everywhere it’s accepted.
