2017-06-03 79 views
2

Semantic versioning存在於兩個草稿中(截至撰寫本文,不包括beta和候選發佈):1.0.0和2.0.0。顯然,它本身是版本化的。什麼版本的語義版本化版本?

  • 什麼是1.0.0和2.0.0之間的突破變化提示主要版本顛簸?
  • 使用semver時,我需要擔心這個或將來的更改會導致混淆嗎?
  • 如果semver進行了允許在一個版本下但在其他版本下允許的更改,會發生什麼情況?

回答

1

這些都是很好的問題!

什麼是1.0.0和2.0.0之間的突破變化,促使主要版本凹凸?

有所涉及的語言的細微緊縮的規範和補充其可能促使一些SemVer解析器(包裝和工作流工具)的一些代碼的修改FAQ多的變化,它沒有一個非常翻天覆地。最大的變化是:

  • 增加#11指定版本優先級,包括預發佈標記和排除構建元數據。
  • 增加了build metadata tag,這大大保證瞭解析器在大多數情況下(如果不是所有的支持產品)破損。
  • 刪除版本字符串中的'v'。
  • 對段號進行更改,使得1.0.0#10與2.0.0#10無關,這肯定會將引用鏈接切換到默認的semver.org頁面。

當我用這個或者以後的改變會引起混淆時,我需要擔心嗎?

真的沒有什麼標準方法可以知道MyCoolGizmo 1.2.0是否在SemVer 1.0.0,2.x.x或未來的x.x.x規範下版本化。但之後,您無法從版本字符串中瞭解任何有關任何潛在語義,合同或工作流程的內容,因此我們需要某種版本元/方案(WIP)。關於GitHub semver/semver issues tab有一些建議,如果被採納會對SemVer社區中的許多人非常令人不安,但不太可能被全部或部分採納。

我已經和維護者就SemVer的未來進行了一些電子郵件討論,並有理由期待今年某些時間有些計劃正在努力獲得一些前瞻性聲明。一個3.x.x版本可能在某個角落,但是這個角落可能會在這個時候出現幾年。該標準非常穩定,我相信它很可能會保持如此。

編輯:到達您的問題的核心部分,semver.org site維護可從您的產品文檔中引用的規範的五個版本的「不可變」副本。我預計這份名單將會隨着發佈新版本候選版本的發佈而增長。您應該始終能夠引用您的產品聲明遵守的版本。

如果semver在一個版本下進行了更改,但在其他版本下沒有進行更改,會發生什麼情況?

任何新版本的SemVer將相對於2.0.0。當然,相對於2.x.x的任何突破變化都是相對於1.0.0突破的,所以有什麼不同?如果你擔心被刪除的功能,那顯然是一個突破性的改變,需要另一個主要版本的崩潰。

如果您有任何進一步的疑慮,您可以在這裏問問他們或將他們帶到SemVer issues site on GitHub