SEMVER 2.0.0
セマンティックバージョン比較
2つの具体的なSemantic Versionをstrictに解析し、SemVer 2.0.0の優先順位を比較します。
✓ 入力値はブラウザ内だけで処理し、保存・外部送信しません。
COMPARE
Version AとBを比較
RESULT
比較結果
—
Version Aの解析
Version Bの解析
SemVer 2.0.0の比較規則
MAJOR、MINOR、PATCHを左から数値として比較し、同じversion coreなら通常版をpre-release版より上に扱います。pre-releaseは識別子ごとに比較し、数字だけなら数値、文字やハイフンを含む場合はASCII順、数値識別子は非数値識別子より低い優先順位です。
build metadataは解析・表示しますが、優先順位には使いません。たとえば 1.0.0+abc と 1.0.0+xyz の優先順位は同じです。入力上限500文字はSemVer仕様の上限ではなく、このツールのDoS・UX対策です。
このツールは具体的なstrict SemVerだけを比較します。npm range、^、~、wildcard、v1.2.3 のようなGit tag表記、互換性や公開日時の判定は対象外です。
よくある質問
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は保存されますか?
ブラウザ内で処理し、外部送信・保存しません。