这是否构成对 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".
的微小变化
我的第一直觉是说这是对现有调用行为的更改,因此是一项重大更改。
想法?
鉴于以下情况
- 进行不兼容的 API 更改时的主要版本
- 以向后兼容的方式添加功能时的次要版本
- 修复向后兼容的错误时的 PATCH 版本。
我会说您的更改不向后兼容。属于您的边缘案例组的人将通过您的新包更改他们的预期功能。鉴于此,我会说这是一个新的主要版本
如果这个问题发错了,我深表歉意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".
的微小变化我的第一直觉是说这是对现有调用行为的更改,因此是一项重大更改。 想法?
鉴于以下情况
- 进行不兼容的 API 更改时的主要版本
- 以向后兼容的方式添加功能时的次要版本
- 修复向后兼容的错误时的 PATCH 版本。
我会说您的更改不向后兼容。属于您的边缘案例组的人将通过您的新包更改他们的预期功能。鉴于此,我会说这是一个新的主要版本