2017-08-03 100 views
-1

我有一个不直接使用的神器。这些工件包含运行用户应用程序的服务器。用户(即第三方)可见的API在单独的库中有明确的定义。SemVer主要升级与否?

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

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

  • A)应凹凸服务器主要版本,因为公共方法的签名被改变,或者
  • B)凹凸小的版本,这一变化不会影响服务器的用户?

事实上,它似乎在情况B,服务器永远不会得到主要版本增加,也就是说,它会一直留在1.x.x因为对于用户的API在不同的库定义(服务器只是实现)。

我该如何处理这种情况?

+0

您是否添加新的功能,或者只是做一些更新/修复? –

+0

我不会调用功能......它只是添加另一个配置设置。但服务器如何连接到某个数据存储的方式有所变化。 – igr

+0

这些更改是否会打破使用此服务器的任何系统? –

回答

0

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

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