1

如果这个问题被张贴到错误的空间,我深表歉意——对于 SO 来说感觉不太合适,但我不知道有更好的地方。

我有一个公共 nuget 包(EnumStringValues ... plug、plug plug),我正在对其进行更改。

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

极端情况是“您以一种并非真正打算使用的方式使用了这个库”。即我略微增加了库的预期使用范围。

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

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

4

1 回答 1

1

鉴于以下

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

我会说您的更改不向后兼容。属于您的边缘案例组的人将通过您的新包更改他们的预期功能。鉴于此,我会说这是一个新的主要版本

于 2015-05-28T13:14:47.340 回答