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