SemVer主要升级与否?

时间:2017-08-03 16:57:38

标签: semantic-versioning

我有一个未直接使用的工件。这些工件包含运行用户应用程序的服务器。用户(即第三方)可见的API在单独的库中定义良好。

现在,我正在对服务器进行一些更改。一些公共方法得到签名更改。但是,这并不反映用户,因为他没有看到更改。

我不确定SemVer在这种情况下定义了什么。我应该

  • A)Bump服务器主版本,因为公共方法签名已更改,或
  • B)Bump次要版本,因为此更改不会影响服务器的用户?

事实上,似乎在案例B中服务器将永远不会获得主要版本增加,即它始终保持在1.x.x,因为用户的API在不同的库中定义(服务器只是一个实施它。)

我该如何对待这个案子?

1 个答案:

答案 0 :(得分:0)

“公共方法签名”更改听起来像是对我的重大改变。但是你说这个改变不会影响客户。这有点令人困惑。您是否在API中添加了功能?这是一个小小的颠簸。如果您更改了现有API,以便必须重新编译或修改客户端才能继续使用它,那么您将遇到一个重大障碍。 SemVer规范非常明确,API更改需要主要或次要的影响,其他所有内容都属于“错误修复”类别。

如果您的更改涉及向现有方法添加可选参数或以不需要重新编译客户端代码的方式接受函数的其他常量/枚举,并且使用旧功能集的客户端不会看到任何行为更改,那么您肯定有一个小小的改变。