【版本號】版本號命名指南-【轉】


首先看看某些常見軟件的版本號:


  • Linux Kernel: 0.0.1,1.0.0,2.6.32,3.0.18…,若用 X.Y.Z 表示,則偶數 Y 表示穩定版本,奇數 Y 表示開發版本。

  • Windows:windows 98,windows 2000,windows xp,windows 7…,最大的特點是雜亂無章,毫無規律。

  • SSH Client:0.9.8。

  • OpenStack:2014.1.3,2015.1.1.dev8。


從上可以看出,不同的軟件版本號風格各異,隨着系統的規模越大,依賴的軟件越多,如果這些軟件沒有遵循一套規範的命名風格,容易造成 Dependency Hell。所以當我們發佈版本時,版本號的命名需要遵循某種規則,其中 Semantic Versioning 2.0.0 定義了一套簡單的規則及條件來約束版本號的配置和增長。本文根據 Semantic Versionning 2.0.0 和 Semantic Versioning 3.0.0 選擇性的整理出版本號命名規則指南。


版本號命名規則指南


版本號的格式爲 X.Y.Z(又稱 Major.Minor.Patch),遞增的規則爲:


  • X 表示主版本號,當 API 的兼容性變化時,X 需遞增。

  • Y 表示次版本號,當增加功能時(不影響 API 的兼容性),Y 需遞增。

  • Z 表示修訂號,當做 Bug 修復時(不影響 API 的兼容性),Z 需遞增。


詳細的規則如下:


  1. X, Y, Z 必須爲非負整數,且不得包含前導零,必須按數值遞增,如 1.9.0 -> 1.10.0 -> 1.11.0

  2. 0.Y.Z 的版本號表明軟件處於初始開發階段,意味着 API 可能不穩定;1.0.0 表明版本已有穩定的 API。

  3. 當 API 的兼容性變化時,X 必須遞增,Y 和 Z 同時設置爲 0;當新增功能(不影響 API 的兼容性)或者 API 被標記爲 Deprecated 時,Y 必須遞增,同時 Z 設置爲 0;當進行 bug fix 時,Z 必須遞增。

  4. 先行版本號(Pre-release)意味該版本不穩定,可能存在兼容性問題,其格式爲:X.Y.Z.[a-c][正整數],如 1.0.0.a1,1.0.0.b99,1.0.0.c1000。

  5. 開發版本號常用於 CI-CD,格式爲 X.Y.Z.dev[正整數],如 1.0.1.dev4。

  6. 版本號的排序規則爲依次比較主版本號、次版本號和修訂號的數值,如 1.0.0 < 1.0.1 < 1.1.1 < 2.0.0;對於先行版本號和開發版本號,有:1.0.0.a100 < 1.0.0,2.1.0.dev3 < 2.1.0;當存在字母時,以 ASCII 的排序來比較,如 1.0.0.a1 < 1.0.0.b1。

  7. 注意:版本一經發布,不得修改其內容,任何修改必須在新版本發佈!


一些修飾的詞


  • alpha:內部版本

  • beta:測試版

  • demo:演示版

  • enhance:增強版

  • free:自由版

  • full version:完整版,即正式版

  • lts:長期維護版本

  • release:發行版

  • rc:即將作爲正式版發佈

  • standard:標準版

  • ultimate:旗艦版

  • upgrade:升級版


出處:http://wsfdl.com/devops/2016/09/27/%E7%89%88%E6%9C%AC%E5%8F%B7.html

發佈了14 篇原創文章 · 獲贊 28 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章