这是否构成了对语义版本控制API的重大更改?



如果这个问题被张贴到错误的空间,请道歉-它不觉得非常适合SO,但我不知道有更好的地方

我有一个公共nuget包(EnumStringValues…插头,插头插头),我正在改变。

这个变化不会改变API签名——旧的代码仍然可以编译。但它确实会在极端情况下改变行为——大多数情况下的结果是,以前会产生异常的用法现在执行不同的默认行为。还有一个TryParse()调用,它将(在这种边缘情况下)将(非异常)失败情况更改为成功情况。

边缘情况是"你以一种不是真正想要使用的方式使用了这个库"。也就是说,我稍微增加了库的预期使用范围。

这是一个突破性的变化吗?它是否因此需要一个新的MAJOR版本?或者仅仅是一个"向后兼容"的小改动。

我的第一直觉是说这是对现有调用行为的改变,因此是一个突破性的改变。想法吗?

给定以下

  1. 进行不兼容API更改时的主要版本
  2. MINOR版本当你以向后兼容的方式添加功能时
  3. 补丁版本,当你做向后兼容的错误修复。

我想说你的改变是不向后兼容的。属于您的边缘情况组的人员的预期功能将被您的新包更改。鉴于此,我认为这是一个新的主要版本

最新更新