这是否构成了语义版本控制API的重大变化

时间:2015-05-28 09:02:48

标签: nuget semantic-versioning

道歉,如果这个问题被发布到了错误的空间 - 它不会感觉非常适合SO,但我不知道更好的地方。

我有一个公共nuget包(EnumStringValues ...插件,插头插件)我正在进行更改。

更改不会更改API签名 - 旧代码仍会编译。但它确实会改变边缘情况下的行为 - 主要是结果是之前生成异常的用法现在执行不同的默认行为。还有一个TryParse()调用,它将(在这种情况下)将(非异常)失败案例更改为成功案例。

边缘情况是“你以一种不真正意图使用的方式使用了这个库”。即我略微增加了图书馆的预期使用范围。

这是一个突破性的变化吗?它是否需要new MAJOR version? 或者它只是一个“向后兼容”的微小变化。

我的第一直觉是说它改变了现有呼叫的行为,因此是一个突破性的变化。 想法?

1 个答案:

答案 0 :(得分:1)

鉴于以下内容

  1. 进行不兼容的API更改时的MAJOR版本
  2. 以向后兼容的方式添加功能时的MINOR版本
  3. 当您进行向后兼容的错误修复时的PATCH版本。
  4. 我会说你的改变不是向后兼容的。属于边缘案例组的人员将通过新软件包更改其预期功能。鉴于此,我会说这是一个新的主要版本