領先一步
VMware 提供訓練與認證,加速您的進展。
深入瞭解Spring 團隊已決定變更發布列車和專案模組的版本控制方案。這些變更將在下一個發布列車以及每個專案的次要版本發布中推出。事實上,這些變更已在Spring Cloud 2020.0.0-M1中實作。Maven 和 Gradle 未提供完全相同的版本排序,但我們正與 Gradle 團隊合作,以確保 Spring 方案最終在這兩種工具中都以相同方式排序。
自 2013 年以來,Spring 一直使用按字母順序排列、主題式的發布列車版本。發布列車包含一組可良好協同運作的專案版本,但不保證升級到下一個發布列車時,底層程式庫的向後相容性。
從那時起,社群針對版本名稱提出了一些疑慮,而我們也聽取了這些意見。主要疑慮是,對於非英語母語人士來說,此方案在按字母順序排序時可能具有挑戰性。此外,主題式名稱可能難以記住版本名稱。最後,某些主題名稱的拼寫可能具有挑戰性。
為了消除這些疑慮,Spring 團隊已決定改用日曆版本控制 (calver),使用 YYYY.MINOR.MICRO[-MODIFIER]
方案,其中
YYYY
為完整年份。
MINOR
是每年遞增的從 0 開始的數字。
MICRO
是修補程式版本。
MODIFIER
是選用修飾詞,其中 <COUNT>
是遞增的從 1 開始的數字
對於里程碑版本,我們將使用 M<COUNT>
。
對於候選發布版本,我們將使用 RC<COUNT>
。
對於快照版本,我們將使用 -SNAPSHOT
。請注意,我們先前方案中存在的 .BUILD
已移除。
對於正式發布版本,將沒有修飾詞。
版本順序範例為 2020.0.0-M1
、2020.0.0-M2
、2020.0.0-RC1
、2020.0.0-SNAPSHOT
、2020.0.0
、2020.0.1-SNAPSHOT
、2020.0.1
、2020.1.0-M1
、2020.1.0-M2
、2020.1.0-RC1
、2020.1.0-SNAPSHOT
、2020.1.0
等。
這解決了對向後相容性意涵的疑慮問題,簡化了非英語母語人士的排序,比基於名稱的版本更容易記住,並消除了拼寫方面的挑戰。與許多其他使用 calver 的專案一樣,Spring 團隊也可能會繼續使用代號來指稱每個列車,這些代號遵循其版本的舊慣例。
自 2008 年Spring Framework 3.0.0.M1發布以來,Spring 團隊一直使用與 OSGi 語意化版本控制 相容的相同版本。我們認為,既然我們正在重新檢視發布列車版本控制方案,那麼最好也重新檢視我們的專案模組版本。
雖然擁有與 OSGi 相容的版本很方便,但為了使 Maven 版本與 OSGi 相容,沒有必要這樣做,因為套件組合中繼資料可以在其中指定與 OSGi 相容的版本。我們決定新的版本控制方案將遵循語意化版本控制中定義的語法,以協助剖析版本號碼。我們也希望我們的版本能讓 Java 開發人員感到熟悉。鑑於上述資訊,我們決定改用 MAJOR.MINOR.PATCH[-MODIFIER]
的版本方案,其中
MAJOR
若遞增,可能需要大量工作才能升級。
MINOR
若遞增,應只需少量或無需任何工作即可升級。
PATCH
若遞增,應無需任何工作。
MODIFIER
是選用修飾詞,其中 <COUNT>
是遞增的從 1 開始的數字
對於里程碑版本,我們將使用 M<COUNT>
。
對於候選發布版本,我們將使用 RC<COUNT>
。
對於快照版本,我們將使用 -SNAPSHOT
。請注意,我們先前方案中存在的 .BUILD
已移除。
對於正式發布版本,將沒有修飾詞。
版本順序範例為 2.3.0-M1
、2.3.0-M2
、2.3.0-RC1
、2.3.0-RC2
、2.3.0-SNAPSHOT
、2.3.0
、2.3.1-SNAPSHOT
、2.3.1
、2.4.0-M1
、2.4.0-M2
、2.4.0-RC1
、2.4.0-SNAPSHOT
、2.4.0
等。
我們要感謝社群的各位提供意見回饋,我們希望這些變更將改善您使用 Spring 的體驗!