は、私はかなりSemantic Versioning上にcluedたと思ったが、この1つの変更が予想されるバージョンの変更であるかについて、私はわからない作られていますJavaScript、メジャー、マイナー、パッチのネストされたオブジェクトのSemver?
元のコード:
if (result.error) {
return callback(result.error);
}
新しいコード:
if (result.error) {
result.error.message = `${result.error.message} on ${self.tableName()}`;
return callback(result.error);
}
私はこの変更を考えている
はpatch
、minor
として、またはmajor
変化として分類することができます。次の3つのシナリオがあります。
patch
:コールバックにはまだError
オブジェクトがあります。Error
オブジェクトはまだmessage
プロパティを持ち、そのプロパティはまだString
です。minor
:消費者がmessage
プロパティの内容に頼って文字列の一部を探している可能性があります。この変更は文字列の末尾に追加するだけなので、追加するだけです。major
:消費者がmessage
プロパティの内容に依存することがあり、これは現在、別の文字列
である私が使っていたライブラリが邪魔にsemverに適合しなかったとき、私は一度本当に怒りました私は期待していました。私は他の人にそれをしたくありません。
私はこれが主観的/意見に基づく質問として見ることができると意識していますが、私は正しい答えを探しています。最も安全なオプションは明らかにmajor
に行くことですが、それは過度のものかどうかを見ています。
ユーザーがメッセージをどのように使用しているのかわからないため、大きな変化です。 –
@AdrianLynch then *毎回の変更は大きな変更です。 – zerkms
もちろんです。私が新しいメソッドを追加すると、それは大きな変化ではありません。メソッドに余分な引数を追加すると、それは大きな変更ではありません。私が以前とは違う何かを返すと、それは潜在的に壊滅的な変化です。 –