技術メモ

技術メモ

ラフなメモ

ソースコード管理のバージョニング戦略

バージョニング戦略

Apache

[1]のApacheの例を考えます。[2]でも同様のコンセプトに基づいています。

Patch Version

ソース互換性/バイナリ互換正を担保する。パッチリリースできるのは関数の実装のみ。APIの変更やpublic関数のシグネチャを変更する、関数パラメータの解釈を変更することはできない。

Minor Versions

破壊的変更をせずに、既存バージョンと完全に互換性を保つリリース(新規機能の追加によるリリースなど)はマイナーマージョンアップになる。

マイナーリリースでは、以下のリリースをすることができる。

  • 新しい関数の導入
  • 新しい定数の導入
  • 既存の関数の非推奨化

Major Versions

破壊的変更が許可される、既存のバージョンと互換性を保たない変更を伴うリリースの場合はメジャーバージョンアップになる。

  • 定数の削除または変更
  • (廃止予定の)関数を削除
  • マクロ化された関数の置換(?)

まとめ

マイナーバージョンアップと、メジャーバージョンアップについて簡単にまとめました。以外にも明確な基準でバージョンアップの基準が選定できるので、この基準はよいなと思っています。

参考

  1. http://apr.apache.org/versioning.html
  2. https://semver.org/