ソースコード管理のバージョニング戦略
バージョニング戦略
Apache
[1]のApacheの例を考えます。[2]でも同様のコンセプトに基づいています。
Patch Version
ソース互換性/バイナリ互換正を担保する。パッチリリースできるのは関数の実装のみ。APIの変更やpublic関数のシグネチャを変更する、関数パラメータの解釈を変更することはできない。
Minor Versions
破壊的変更をせずに、既存バージョンと完全に互換性を保つリリース(新規機能の追加によるリリースなど)はマイナーマージョンアップになる。
マイナーリリースでは、以下のリリースをすることができる。
- 新しい関数の導入
- 新しい定数の導入
- 既存の関数の非推奨化
Major Versions
破壊的変更が許可される、既存のバージョンと互換性を保たない変更を伴うリリースの場合はメジャーバージョンアップになる。
- 定数の削除または変更
- (廃止予定の)関数を削除
- マクロ化された関数の置換(?)
まとめ
マイナーバージョンアップと、メジャーバージョンアップについて簡単にまとめました。以外にも明確な基準でバージョンアップの基準が選定できるので、この基準はよいなと思っています。