軟件版本號
![本页使用了标题或全文手工转换](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
軟件版本編號訂定是指為軟件設定版本號碼的方式。通常,版本號碼會以數字訂定,但亦有不同的方式。
小數
[编辑]![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/00/VersionNumbers.svg/93px-VersionNumbers.svg.png)
這是最常用的一種訂定方式。大部份軟件的版號都是用此方法去計算。一個以此方式來訂定編號的例子如:2.4。通常訂定規則為:
major是最大的版本編號,minor為其次,某些軟件可能再細分作build,為更小的版本編號。
通常,正式版的版本編號為「1.0」。1.0以下的版本(0.x)為測試版,代表仍有一些重大錯誤(bugs),未正式推出[1]。
在新版本推出時,應更新major、minor或是build(如有)的版號,決定於變更的大小。當有極大的更新時,會增加major的版號。而當有大更新,但不至於更新major時,會更新minor的版號。若更新比較小,例如只是修正錯誤,則會更新build的版號。以下是一個例子:
- 1.0→1.0.1→1.0.2→1.1→1.1.1→2.0→2.1→2.1.1→3.0→…
以上例子中,1.0至1.0.1至1.0.2、1.1至1.1.1、2.1至2.1.1都是小更新;1.0.2至1.1、2.0至2.1都是較大的更新;而1.1.1至2.0和2.1.1至3.0則是重大更新。
有時,小數版本號碼後面會有「a」、「b」、「rc」等字樣,代表某版本的測試版。「a」、「b」、「rc」分別代表「alpha」、「beta」和「release candidate」。(詳見軟件版本週期)例如「2.0a」是2.0的alpha測試版,接着可能發佈「2.0b」,是2.0的beta測試版。跟着,又可能出現「2.0b2」,代表2.0的第2個beta測試版。當beta測試完結後,又可能推出「2.0rc1」、「2.0rc2」兩個版本,分別代表2.0的第一和第二個release candidate測試版。當一切測試結束後,就會有「2.0」正式版。
實例
[编辑]只有major和minor的軟件有如MediaWiki。當MediaWiki發佈1.9版本後,下一個版本是1.10。
Mozilla Firefox的3.x版本有major、minor和build。例如其中兩個版本為3.0和3.0.1。而Firefox的2.x版本更有四個數字,此時版本結構改為。例如Firefox 2.x的其中一個版本為2.0.0.14。(更多資料:Mozilla Firefox歷史)
日期
[编辑]除了依照版本發佈次序逐個數以外,軟件版本編號亦有可能使用日期。例如版本「20080101」代表該版本於2008年1月1日發佈。通常日期的排列方法會是「YYYY-MM-DD」,因為這樣做的好處是,當電腦排序時,可以自動分辨哪個是較舊或較新的版本。[2]
有時候,版本編號更會由小數和日期結合,即是類以1.5.20080101等方式[3]。
實例
[编辑]使用小數和日期結合的版本編號軟件,例如Firefox的其中一個擴充套件「IE Tab」的其中一個版本編號為1.5.20080823。
而Ubuntu亦是採用日期的訂定版本編號方式,但卻看起來像以普通小號訂定。例如Ubuntu 8.04版本代表該版本於2008年4月發佈。事際上,由於Ubuntu並非每個月發佈,而是每半年发布一个版本,因此版本編號會跳序。而一年只有12個月,所以亦沒有像6.13這樣的版本。
年份
[编辑]有些軟件,尤其不會在一年中出版兩次的軟件會使用年份作版本編號。例如2003版代表該軟件於2003年發佈。有時軟件亦採用兩字的年份縮寫,例如以04代表2004年。
實例
[编辑]微軟的很多產品都以此方式訂定版本編號。例如Windows 95、Windows 2000、Microsoft Office 2007等。但是,微软这些产品一般还具有小数版本号。例如:Microsoft Visual Studio 2010的版本号是10.0;Windows 2000的版本号是5.0,Windows XP的版本号是5.1,Windows Vista的版本号是6.0,Windows 7的版本号是6.1等等。
MATLAB通常一年中释出两个版本,自2006年后以“R”+四位年份+“a”或“b”的方式区分。例如MATLAB R2011a、MATLAB R2011b等。
數學常數
[编辑]有些軟件採用數學常數來進行訂定版本編號。具體方法為先選定一個數學常數,每個新版本都距離該數學常數更近。其含义是该软件有一个确定的功能目标,而不是在未来无限扩展其功能范围,所以采用数学常数作为版本号表示距离软件的目标越来越逼近。例如選用圓周率的軟件,其版本應為3、3.1、3.14、3.141、……
實例
[编辑]TeX選定的數學常數為π。而METAFONT選定的數學常數則為e。
英文縮寫
[编辑]有些軟件採用英文縮寫來為版本制定編號。
實例
[编辑]Macromedia於2004年推出Flash MX。Adobe收購Macromedia後,為其推出之後續版本為Flash CS2,當中「CS」代表Creative Suite。
Windows有兩個版本採用英文縮寫作版本編號,分別是Windows Me和Windows XP。「Me」代表「Millennium」(千禧年)或「me」(自己);「XP」代表「experience」(體驗),當讀出experience時,讀音像讀出x和p。
Ubuntu于2008年4月推出8.04 LTS版本。Ubuntu将长期为8.04版本提供技术支持。支持时间最少为三年。LTS是Long Term Support的英文缩写,意为长期支持。
特別注意事項
[编辑]混合使用各種訂定方式
[编辑]有些軟件會混合使用各種版本編號訂定方式,即不同的版本分別採用不同的訂定方式。
例如Windows,曾採用普通小數方式(Windows 1.0至Windows 3.11),年份(Windows 95、Windows 98、Windows 2000),縮寫(Windows Me、Windows XP)和英文字(Windows Vista)。
同時擁有兩個版本編號
[编辑]有些軟件會同時擁用兩個版本編號,即是以兩種不同的訂定方式,賦予同一個版本兩個編號。
例如Windows:Windows 95亦即Windows 4.0,Windows 98亦即Windows 4.10,Windows Me亦即Windows 4.90,Windows 2000亦即NT 5.0,Windows XP亦即NT 5.1,Windows Vista亦即NT 6.0,Windows 7亦即NT 6.1。[4]
小數版本序號可能會跳序
[编辑]有些軟件的小數版本序號可能會出現跳序。此處「跳序」是指同一個軟件,兩個相鄰的使用小數版本序號的版本,並不是major、minor或build其中一個值相差1。
例如Simutrans自2005年的major版本序號為86.x、88.x、89.x、99.x、100.x。當中86至88和89至99出現了跳序。[5]
除此以外,還有軟件會因為「不幸運數字」(例如4、13)的原因而跳序。
在軟件以外的領域
[编辑]除了軟件以外,還有其他東西也採用類似的版本編號訂定。
- 電影的續集通常為「XXX 2」,當中XXX是電影名稱。如果再有續集,則會是「XXX 3」。
- 例如魔鬼終結者、未來戰士2和未來戰士3
- Web 2.0並不是指軟件「Web」的第二個版本,而是指互聯網的一個新定義,新轉變。
參見
[编辑]參考資料及注釋
[编辑]- ^ Advogato: Version numbering madness. [2008-10-07]. (原始内容存档于2008-10-07).
- ^ International standard date and time notation. [2008-10-07]. (原始内容存档于2021-05-04).
- ^ Coding Horror: What's In a Version Number, Anyway?. [2008-10-07]. (原始内容存档于2010-01-20).
- ^ 各版本的兩個版本編號可於該系統的「執行」視窗中輸入winver取得。
- ^ The International Simutrans Forum Archive (Simutrans官方論壇存檔) 互联网档案馆的存檔,存档日期2008-09-21.
外部連結
[编辑]- Windows Version Numbers
- TN 1132 - Version Territory (页面存档备份,存于互联网档案馆), the Apple technical note specifying the use of the NumVersion scheme
- Software Release Practice Howto (页面存档备份,存于互联网档案馆)
- http://netrik.sourceforge.net/?versions.html (页面存档备份,存于互联网档案馆)
- http://www.everything2.com/index.pl?node_id=1128644 (页面存档备份,存于互联网档案馆)
- http://pear.php.net/group/docs/20040226-vn.php (页面存档备份,存于互联网档案馆)
- http://openacs.org/doc/openacs-5-0-0/eng-standards-versioning.html (页面存档备份,存于互联网档案馆)
- http://wiki.eclipse.org/index.php/Version_Numbering (页面存档备份,存于互联网档案馆)
- https://web.archive.org/web/20080919105207/http://www.linux.com/articles/45507
- http://blogs.ittoolbox.com/database/soup/archives/guide-to-postgresql-version-numbers-19177 (页面存档备份,存于互联网档案馆)
- http://www.xfree86.org/4.1.0/Versions2.html (页面存档备份,存于互联网档案馆)
- https://web.archive.org/web/20080503101533/http://www.phpbb.com/mods/documentation/appendix/versioning/index.php
- https://web.archive.org/web/20061110185820/https://help.ubuntu.com/6.10/ubuntu/about-ubuntu/C/version-numbers.html