是否在函数定义中添加参数需要新的主要版本?

时间:2015-07-28 13:55:17

标签: semantic-versioning

使用语义版本控制,如果我的API的一个功能发生以下变化:

foo(a, b)
->
foo(a, b, c) //c optional

这是否需要新的主要版本,还是可以在次要版本下传递?

2 个答案:

答案 0 :(得分:0)

Semantic Versioning 2.0.0说:

  

给定版本号MAJOR.MINOR.PATCH,增加:

     当您进行不兼容的API更改时,

MAJOR版本,
  当您以向后兼容的方式添加功能时的MINOR版本,以及
  当您进行向后兼容的错误修复时,PATCH版本。

如果您的额外参数是可选的,则需要更改 MINOR 版本。否则,它需要 MAJOR 版本更改。

答案 1 :(得分:0)

根据http://semver.org/

  当您进行不兼容的API更改时,

MAJOR版本,
  当您以向后兼容的方式添加功能时的MINOR版本,以及
  当您进行向后兼容的错误修复时,PATCH版本。

因此,如果你改变这个功能,那将是一个重大改变。

但是如果你用另一个签名重载了这个函数而没有破坏兼容性......这是次要的