web-dev-qa-db-ja.com

同じリリースでのバグ修正と新機能によるセマンティックバージョニング

セマンティックバージョニングについてよく読んだ後、私は概念の基本的な理解を得ましたが、次の場合にバージョン番号をインクリメントするための最良の方法は何なのかわかりません。

最後のリリースがバージョン1.0.0だったとしましょう。今、私はたくさんのプルリクエストを持っています。それらのいくつかはバグを修正しており、他は新しい機能を追加しています。

Semver仕様では、マイナーバージョンは新機能(何も壊さない)の場合は増分され、バグ修正の場合はパッチバージョンが増分される必要があると記載されています。

私の計画は、バグ修正と新機能を同じリリースでリリースすることです。

これを念頭に置いて、次のリリースをsemverでどのようにバージョン付けしますか?

4
user3147268

新機能に下位互換性があると仮定すると、マイナーバージョン番号をインクリメントし、PATCHレベルをリセットする必要があります。

根拠

semver 2.0. は、第7節でこれを明確にします。

  1. マイナーバージョンY(x.Y.z | x> 0)は、新しい下位互換性のある機能がパブリックAPIに導入されている場合、インクリメントする必要があります。パブリックAPI機能が非推奨としてマークされている場合は、インクリメントする必要があります。プライベートコード内に大幅な新機能または改善が導入された場合は、増加する可能性があります。 パッチレベルの変更を含めることができます。マイナーバージョンが増加する場合、パッチバージョンを0にリセットする必要があります。

パッチレベルは、メジャーバージョンとマイナーバージョンが変更されない(つまり、新しい機能がない)場合にのみ増加しますが、バグのみを修正するバージョンをリリースする必要があります。

11
Christophe