2014-02-11 46 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