2024年1月30日のブックマーク (1件)

  • Semantic Versioningにおける破壊的な変更

    io.jsがv1.3.0になり、ビルトインのURLモジュールでresolve('/foo/bar', '.')が/foo/とスラッシュ付きで返されるようになった。今までは/fooとスラッシュなしで返っていたので、これは破壊的な変更であり、Semantic Versioningに従うならばメジャー・バージョンを上げるべきではないのかという議論がなされていたようだ。 仮にこういった実装ミスの修正が破壊的な変更だとすると、ほとんどすべてのバグ・フィックスは破壊的な変更になってしまう。バグ・フィックスは必ずどこかで何か(モンキーパッチとか)を破壊するし、破壊しないことを保証することは不可能だ。Semverにおいては変更の仕分けはユーザーの利用ではなく、仕様という観点での話になる。つまり仕様に変更があったかどうかが焦点になる。 このURLモジュールのケースでは、仕様が外部(ドキュメントのブラウザーの

    Semantic Versioningにおける破壊的な変更
    tasshi820
    tasshi820 2024/01/30
    わかりみ “仮にこういった実装ミスの修正が破壊的な変更だとすると、ほとんどすべてのバグ・フィックスは破壊的な変更になってしまう。”