Java ライブラリにセマンティック バージョニング ( http://semver.org/ ) を導入しています。
新しい列挙値の追加をどのように処理する必要がありますか? 私たちの状況は次のとおりです。
annotations.jar
タイプのプロパティを持つ注釈を含むMyEnum
util.jar
annotated from を使用して注釈が付けられたオブジェクトがありますannotations.jar
wsprovider.jar
jaxb のようなテクノロジーを使用して、アノテーション付きオブジェクトをutil.jar
Web API にシリアライズしますwsconsumer.jar
によって提供される Web API を使用wsprovider.jar
し、 の値に基づいて切り替えを行い、MyEnum
動作を変更します。
に新しい値を追加する場合MyEnum
、さまざまな jar のどの部分 (メジャー/マイナー/パッチ) をバンプする必要がありますか?
util.jar
API が既存のコードを壊す可能性のある方法で変更されたため、メジャー バージョンを更新する必要があるように思えます。
同じ論理により、これは波及して と の大きな隆起にwsprovider.jar
なりwsconsumer.jar
ます。
annotations.jar
メジャー バージョンの更新は必要ですか?
列挙型は値の閉じたセットであるため、はいと言います。そのため、コード ( などwsconsumer.jar
) は、列挙型のすべての値をカバーすることで、可能なすべての動作をカバーすることを前提としています。列挙型に新しい値を追加すると、それが壊れます。
しかし、本能的には、列挙型に単一の値を追加するのは少し多すぎるように思われ、かなりの波及効果があります。
これは、semverに慣れる必要があるだけだと思いますか?