いけむランド

はてダからやってきました

If fixing a bug is a breaking change then it is a breaking change

仕様と実装が違っていて、実装を仕様にあわせる (不具合修正する) と、結果的に今の実装からの破壊的な変更 (breaking change) が発生する場合に semver の major を bump するべきか?がわからなかったため、ググったら面白いスレッドがあったから読んでた。

news.ycombinator.com

以下、かいつまんだ内容。

  • SemVer は「何故 API に破壊的な変更を入れたか?」ではなく、「API に破壊的な変更を入れたかどうか?」を訊いている。
  • SemVer が機能しないのはほとんどの場合、きちんと扱っていないから。
  • SemVer は利用者のコードを修正することなく、アップデートしても大丈夫かどうかを利用者に伝えるもの。
  • API が不安定で SemVer で適切に変更を通知しないなら、利用者に使ってもらうことは難しくなる。
    • API が開発途中で毎日のように変化するなら 1.0.0 であるべきではない。1.0.0 は安定した API になったことを知らせるためのものである。