Major, Minor, Patch — 各数字の意味
セマンティックバージョニングの3つの数字の明確なガイド:MAJORは破壊的変更、MINORは機能追加、PATCHはバグ修正。
Version Comparison
詳細な説明
MAJOR.MINOR.PATCH の理解
セマンティックバージョニングは、リリース間の変更の性質を伝えるために3つの数字を使用します。
3つのコンポーネント
| コンポーネント | 位置 | インクリメントするタイミング | 例 |
|---|---|---|---|
| MAJOR | 1番目 | 互換性のないAPI変更 | 1.0.0 → 2.0.0 |
| MINOR | 2番目 | 後方互換性のある機能追加 | 1.0.0 → 1.1.0 |
| PATCH | 3番目 | 後方互換性のあるバグ修正 | 1.0.0 → 1.0.1 |
リセットルール
上位コンポーネントをインクリメントすると、下位コンポーネントはゼロにリセットされます:
- MAJORバンプ:
1.4.7→2.0.0(マイナーとパッチがリセット) - MINORバンプ:
1.4.7→1.5.0(パッチがリセット) - PATCHバンプ:
1.4.7→1.4.8(リセットなし)
「破壊的変更」とは?
一般的に、既存コードが動作しなくなる可能性のあるものが破壊的変更です:
- パブリック関数やメソッドの削除
- 関数シグネチャの変更
- 設定オプションの名前変更や削除
- ユーザーが依存するデフォルト動作の変更
0.xの例外
バージョン1.0.0未満ではAPIは不安定と見なされ、ルールは緩和されます。これが^0.2.3が^1.2.3と異なる扱いを受ける理由です。
ユースケース
パッケージやライブラリを公開する際のバージョン番号の慣行を理解し、変更がメジャー、マイナー、パッチのバンプに相当するかを判断する場合。