2016-05-13 1 views
3

メジャーバージョンとマイナーバージョンをいつ、なぜバンプするべきなのか、私はその理由を理解しています。しかし、メジャーにはA.B、マイナーにはCを持つ点は何ですか?いつAにぶつけたらいいですか?Bsemantic versioningポリシーのようなメジャーバージョンのための場所が1つしかないのはなぜですか?なぜhaskellバージョン管理ポリシーは、メジャーバージョン用に2つの場所を持ちますが、セマンティックバージョニングのようなものではないのはなぜですか?

答えて

5

メジャーバージョンのバンプを必要とする変更が多数ありますが、実際にはライブラリの変更はわずかです。 FunctorまたはTraversableインスタンスを追加するのはかなり小さな変更ですが、メジャーバージョンのバンプが必要です。 APIから関数を削除するには、メジャーバージョンのバンプが必要です。

しかし、たくさんのライブラリもまた、巨大なの変更を受けます。 APIの全書き換え。コアタイプと機能のセマンティクスの変更より良い抽象を求めて全体を置き換える。

前の変更ではBへの更新が必要です.Aの更新については後者があります。途中で判断の呼び出しが行われるのは確かです。しかし、大まかなルールは、メジャーバージョンのバンプを必要とする小さなものに対してはBをインクリメントし、重要なAPI変更に対してはAをインクリメントするというものです。

関連する問題