2つのSemverバージョンを比較 — どちらが新しいか?

2つのセマンティックバージョンを比較してどちらが新しいか判定します。メジャー、マイナー、パッチ、プレリリースコンポーネントの比較アルゴリズムを解説。

Version Comparison

詳細な説明

2つのSemverバージョンの比較

バージョン比較は単純な問いに答えます:2つのバージョンが与えられた場合、どちらが新しいか? SemVer仕様はこのための正確なアルゴリズムを定義しています。

比較アルゴリズム

バージョンはコンポーネントごとに左から右に比較されます:

  1. MAJORを比較 — 大きいMAJORが勝ち
  2. MAJORが等しい場合、MINORを比較 — 大きいMINORが勝ち
  3. MINORが等しい場合、PATCHを比較 — 大きいPATCHが勝ち
  4. PATCHが等しい場合、プレリリース識別子を比較
  5. ビルドメタデータは常に無視

バージョンA バージョンB 結果 決定要因
2.0.0 1.9.9 A > B MAJOR: 2 > 1
1.3.0 1.2.9 A > B MINOR: 3 > 2
1.2.3 1.2.3-alpha A > B リリース > プレリリース
1.2.3+build.1 1.2.3+build.2 A = B ビルドメタデータは無視

プレリリースの比較

両方のバージョンがプレリリース識別子を持ち、同じMAJOR.MINOR.PATCHの場合:

  1. プレリリースをドットでトークンに分割
  2. トークンを左から右に比較
  3. 数値トークンは整数として比較(2 < 11
  4. 文字列トークンは辞書順で比較("alpha" < "beta"
  5. 数値トークンは文字列トークンより優先度が低い

Compareタブの使用

Compareタブに2つのバージョンを入力すると即座に確認できます:

  • どちらのバージョンが新しいか
  • コンポーネントごとの内訳
  • メジャー、マイナー、パッチの差分

ユースケース

利用可能なアップデートが現在インストールされているバージョンより新しいかの判定、バージョン対応のデプロイメントパイプラインの構築、チェンジログやダッシュボードでのリリースリストのソート。

試してみる — Semver Calculator

フルツールを開く