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

Does this constitute a breaking change to the API for semantic versioning

如果这个问题发错了,我深表歉意space - 感觉相当不适合SO,但我不没有比这更好的地方了。

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

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

边缘情况是 "you've used this library in a way that it wasn't really intended to be used"。即我略微增加了库的预期使用范围。

这是一个重大变化吗?因此它需要 new MAJOR version 吗? 还是只是 "backwards compatible".

的微小变化

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

鉴于以下情况

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

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