2014-02-11 49 views
2

可以说我有一个可以经由像$MyFunction并且为了简洁$MyFunction返回12的API调用的函数现在让我们说我重命名$MyFunction$The12Function,但它仍然返回相同的结果(在这个例子中,整数12)。这是否保证SemVer的主版本或次版本号码不变?变量名称更改颠簸SemVer主要还是次要?

有人可能会说我不允许向后兼容,因为$MyFunction不再有效。但是,也可以争辩说存在向后兼容性,因为您仍然可以通过$The12Function返回相同的结果。

回答

4

http://semver.org

给定一个版本号MAJOR.MINOR.PATCH,递增:

当你做出不兼容的API改变

主要版本,

当你添加功能

次版本向后兼容 方式和

修补程序版本,当您进行向后兼容的错误修复程序。

所以,你的情况,如果你不也维护旧的函数名,以保持与旧版本的API的兼容性,应增加主版本号。

为了知道兼容性是否被破坏,一种方法是想象你的API和功能被封装在一个向其他程序提供这种功能的库中。您现在对该API进行更改。如果为了使用新版本的库而需要更改链接到旧版API的程序,则表示您的兼容性已破坏,并且应更改主版本。您可以通过重写和维护不推荐使用的旧函数调用来解决此问题,但这会增加API的复杂性。

+0

包的比喻为我解释了这么多,然后问了问题。所以我知道这是违反规则,但谢谢。 – aaronmallen