SemVerにおけるプレリリースバージョンの順序

1.0.0-alpha.1、1.0.0-beta.2、1.0.0-rc.1のようなプレリリースバージョンの順序を解説。数値と文字列の識別子の優先順位ルール。

Pre-release

詳細な説明

プレリリースバージョンの順序

プレリリースバージョンは、パッチバージョンの後にハイフンとドット区切りの識別子を追加して表されます:1.0.0-alpha.1

主要ルール

  1. プレリリース < リリース: 1.0.0-alpha < 1.0.0
  2. 左から右への比較: 識別子は左から右に1つずつ比較されます
  3. 数値 < 文字列: 数値識別子は常に文字列識別子より優先度が低い
  4. 数値比較: 数字のみの識別子は整数として比較(2 < 11
  5. 文字列比較: 文字列識別子は辞書順で比較("alpha" < "beta"
  6. 短い < 長い: すべての先行識別子が等しい場合、短いセットの優先度が低い

順序の例

最低から最高の優先度:

1.0.0-alpha
1.0.0-alpha.1
1.0.0-alpha.beta
1.0.0-beta
1.0.0-beta.2
1.0.0-beta.11
1.0.0-rc.1
1.0.0

よくある落とし穴

落とし穴1: "alpha" > 1

  • 文字列識別子は常に数値より優先度が高い
  • そのため1.0.0-alpha > 1.0.0-1

落とし穴2: beta.11 > beta.2

  • 数値として比較されるため11 > 2
  • 辞書順の文字列比較("11" < "2")とは異なります

ユースケース

npmパッケージのアルファ/ベータ/RCリリースを公開し、コンシューマーによる解決方法を理解する場合、またはプレリリースバージョンチャネルを扱うCI/CDパイプラインのセットアップ。

試してみる — Semver Calculator

フルツールを開く