
從管道部署與釋出 |
275
你可以在外部程式庫 java-utils(
https://github.com/quiram/java-utils
)參考實際的語義
化版本系統範例。如果你採用 java-utils 並且研究過 v4.0.0 至 v4.6.0,你可以發現,每
一個新版都只在 helper 類別加入方法,這顯然是回溯相容的變動。v4.6.0 的下一版是
v5.0.0,它代表有非回溯相容的變動。當你查看這個新版本的變動時,可以看到方法
ArgumentChecks. ensure(Callable<Boolean>, String)
的意義已經改變了;在 v4.6.0,這
個方法的第一個參數預期接收失敗情況,但是在 v5.0.0,它預期接收通過情況,兩者正
好相反!
v5.0.0 的下一版是 v5.0.1,代表修復 bug。事實上,你可以從變動紀錄看到,v5.0.0 將
上述
ensure
方法的意義反過來了,但是它沒有在程式庫中更新每一個呼叫這個方法的位
置,因此破壞了一些功能,v5.0.1 是為了修復它們。
v
是什麼意思?
有時不同的組織會推出略有不同但通常可互通的最佳做法,版本控制就
是其中一個例子。雖然 semver 提倡純數字的版本號碼,但 GitHub 主張
在版本號碼前面加上字母 v。這兩種做法不相容,因為在技術上,GitHub
樣式指的是一個指向特定版本的
標籤
,而不是版本本身。按照 GitHub
的說法,v1.2.3 是引用程式碼版本 1.2.3 的標籤。事實上,就連 semver
存放區也在它的版本中使用 ...