1

この質問が間違った場所に投稿されている場合はお詫び申し上げます

私は変更を加えているパブリック nuget パッケージ ( EnumStringValues ... プラグ、プラグ プラグ) を持っています。

この変更によって API シグネチャが変更されることはありません - 古いコードは引き続きコンパイルされます。ただし、エッジ ケースでの動作は変更されます - ほとんどの場合、以前は例外を生成していた使用法が別のデフォルト動作を実行するようになります。TryParse() 呼び出しもあり、(このエッジ ケースでは) (例外ではない) 失敗ケースを成功ケースに変更します。

エッジケースは、「このライブラリを実際に使用することを意図していない方法で使用した」です。つまり、ライブラリの使用範囲を少し広げました。

それは重大な変更ですか?したがって、新しいメジャーバージョンが必要ですか? それとも、「下位互換性」のあるマイナーな変更にすぎませんか。

私の最初の直感は、これは既存の呼び出しの動作に対する変更であり、したがって重大な変更であると言うものです。考え?

4

1 に答える 1

1

以下を考えると

  1. 互換性のない API の変更を行った場合のメジャー バージョン
  2. 下位互換性のある方法で機能を追加する場合の MINOR バージョン
  3. 下位互換性のあるバグ修正を行う場合の PATCH バージョン。

あなたの変更は下位互換性がないと思います。エッジ ケース グループに属する人々は、新しいパッケージによって期待される機能が変更されます。これに照らして、私はそれが新しいメジャーバージョンであると言うでしょう

于 2015-05-28T13:14:47.340 に答える