SemVer計算ツール

セマンティックバージョン管理には5つの構成要素があります:MAJOR.MINOR.PATCH、および任意で使用可能な-prereleaseおよび+buildのサフィックスです。この計算ツールはバージョン文字列を入力し、semver 2.0.0の文法規則に基づいて検証したうえで、それを構成要素に分解し、次のメジャー・マイナー・パッチ・プレリリース(-rc.1)バージョンを並べて表示します。

バージョンをアップグレードする方法

  1. 1

    現在のバージョンを貼り付けてください

    `1.2.3`、`1.2.3-rc.1`、`2.0.0-alpha+exp.sha.5114f85`およびその他のsemver 2.0.0形式を受け入れます。

  2. 2

    パースされた各部分を確認する

    このツールは文字列をメジャー、マイナー、パッチ、プレリリース、ビルドメタデータに分解するので、期待どおりに解釈されたか確認できます。

  3. 3

    次のバージョンを比較する

    次のメジャー、マイナー、パッチを同時に表示し、さらにプレリリース候補(`-rc.1`)も表示します。マイナーを上げるとパッチは0にリセットされ、メジャーを上げるとマイナーとパッチの両方がリセットされます。

  4. 4

    新しいバージョンをコピーする

    変更内容に合ったバージョンを選んで、`package.json`、`Cargo.toml`、gitタグ、またはリリースノートで使ってください。

この計算ツールが表示する内容

1.2.3のようなバージョンの場合、このツールは提案される次の4つのバージョンを表示します:

種類 1.2.3 が変わる先
メジャー 2.0.0
マイナー 1.3.0
パッチ 1.2.4
プレリリース 1.2.4-rc.1

マイナーを上げるとパッチは0にリセットされ、メジャーを上げるとマイナーとパッチの両方が0にリセットされます。プレリリースの提案は、次のパッチをリリース候補として付けます。npm versionのようなコマンドラインツールには、リリーススクリプトで必要な場合に使えるさらに多くの操作(premajor、preminor、prepatch、および1.2.3-beta.1が1.2.3-beta.2になるような、その場でのプレリリースのインクリメント)があります。

適用される優先順位ルール

  • プレリリースの優先順位はリリースよりも低い:1.0.0-rc.1 < 1.0.0。
  • 数値型の識別子は数値的に比較され、英数字の文字列は辞書順に比較されます:1.0.0-alpha.2 < 1.0.0-alpha.11。
  • ビルドメタデータ(+sha.abc)は優先順位において無視されます。1.0.0+20240101および1.0.0+20250101は同等のバージョンです。
  • 数値識別子における先頭のゼロは無効です。1.0.0-rc.01はsemverではありません;rc.1を使用してください。

範囲オペレータのチートシート

  • ^1.2.3:バージョンが1.2.3以上かつ2.0.0未満のすべてのもの(同じ主要バージョンに属するもの)。
  • ~1.2.3:バージョンが1.2.3以上かつ1.3.0未満のすべてのもの(同じマイナーバージョンに留まる)。
  • >=1.2.3 <2.0.0、明示範囲。
  • 0.xは特別なケースです:npmでは^0.2.3を>=0.2.3 <0.3.0と見なしています。これは、バージョン1.0以前のバージョンが不安定であると判断されているためです。

メジャーバージョンを上げるタイミング

ダウンストリームの利用者に影響する変更ではメジャーを上げます:公開APIの削除、関数シグネチャの変更、デフォルト動作の変更、設定キーのリネームなどが該当します。マイナーは追加的な変更のみに使います。パッチは契約(インターフェース)を変えないバグ修正のためのものです。

よくある質問

いいえ。01.2.3は無効です。各数値識別子は、リテラルの「0」を除き、先頭のゼロを含まない非負の整数でなければなりません。

前回の1.0.0-rc.Nからパッチバウンプを使用してください、semverはこれをプレリリース版からリリース版への移行として処理します。または、バージョンを明示的に設定しタグを付与することもできます。

いいえ。Buildメタデータは+の後に配置され、順序付けでは無視されます。Prereleaseは-の後に配置され、リリースよりも低い優先度に設定されます。ほとんどのレジストリでは1.2.3-rc.1+build.77のように両方を同時に使用できます。

はい、semverでは連続したメジャーバージョンを経る必要はありません。3.xから直接5.xに移行することも可能ですが、ほとんどのチームでは特に大きな変更を示すためにのみ使用しています。

関連ツール

このツールは他の言語でも利用できます