软件版本号
![本页使用了标题或全文手工转换](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
软件版本编号订定是指为软件设置版本号码的方式。通常,版本号码会以数字订定,但亦有不同的方式。
小数
![](http://images.weserv.nl/?url=//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