SEMVER 2.0.0

セマンティックバージョン比較

2つの具体的なSemantic Versionをstrictに解析し、SemVer 2.0.0の優先順位を比較します。

✓ 入力値はブラウザ内だけで処理し、保存・外部送信しません。

COMPARE

Version AとBを比較

SemVer 2.0.0の比較規則

MAJOR、MINOR、PATCHを左から数値として比較し、同じversion coreなら通常版をpre-release版より上に扱います。pre-releaseは識別子ごとに比較し、数字だけなら数値、文字やハイフンを含む場合はASCII順、数値識別子は非数値識別子より低い優先順位です。

build metadataは解析・表示しますが、優先順位には使いません。たとえば 1.0.0+abc1.0.0+xyz の優先順位は同じです。入力上限500文字はSemVer仕様の上限ではなく、このツールのDoS・UX対策です。

このツールは具体的なstrict SemVerだけを比較します。npm range、^~、wildcard、v1.2.3 のようなGit tag表記、互換性や公開日時の判定は対象外です。

一次資料:Semantic Versioning 2.0.0 specification

よくある質問

Semantic Versioningとは?

MAJOR.MINOR.PATCHを基本として、API変更の性質をversion番号で表すルールです。

1.10.0と1.9.0はどちらが上ですか?

1.10.0です。MINORは文字列ではなく任意桁の数値として比較します。

1.0.0-alphaと1.0.0はどちらが上ですか?

1.0.0です。同じversion coreでは通常版の方が高い優先順位です。

beta.2とbeta.11はどちらが上ですか?

beta.11です。数字だけのpre-release識別子は数値として比較します。

build metadataは比較されますか?

優先順位には使用しません。異なるbuild metadataでも同じ優先順位になり得ます。

1.0.0-01は有効ですか?

無効です。pre-releaseの数値識別子は先頭0を持てませんが、build metadataの001は有効です。

v1.2.3はSemVerですか?

公式FAQではv1.2.3自体はSemVerではありません。このツールはvを自動除去しません。

1.2や1.2.xを比較できますか?

できません。3要素がそろった具体的なstrict SemVerだけを比較します。

巨大なversion番号も比較できますか?

500文字の入力上限内で、数値をJavaScript Numberへ変換せず桁数とASCII順で比較します。

大文字と小文字は同じですか?

同じではありません。pre-release識別子は大文字小文字を区別してASCII順で比較します。

入力したversionは保存されますか?

ブラウザ内で処理し、外部送信・保存しません。