关于软件发布的版本号(翻译自APACHE MINA官网)

概述

一直对软件发布的版本号存在疑惑,搞不明白所谓的Mx、RCx、GA都代表什么意思。唯一清楚的是小版本号的改变不会改变类库或者程序的兼容性。再详细的细节就不是特别清楚了。今天看到了apache mina的官网上有一段对mina发布版本号的说明,介绍的很清楚。(这里的版本号机制不一定能够对应上所有的软件,比如spring发布用到的GA就是写在版本号中的。)

以下开始翻译内容,原文详见http://mina.apache.org/downloads-mina.html。


Mina发布版本号更改机制

Mina的类库版本号一般遵循如下格式:

<主版本号>.<小版本号>.<微小版本号>[-M<数字> 或者 -RC<数字>]

先说下尖括号和方括号代表的意思:
<>:代表必然包含的内容,比如主版本号,不论任何一个发布版本都要有这个数字。
[]:代表可选项,即可能有方括号包括的部分,可能没有这部分。比如"2.0.0-M4"是"2.0.0"的一个里程碑版本,两种形式都可能出现。在上述格式中,[-M<数字> 或者 -RC<数字>]可以出现,也可以不出现。如果出现,可以是"-M<数字>",也可以是"-RC<数字>"的形式。

再说下版本号中的前三个数字部分:
<主版本号>:当类库的API发生不兼容性的改变时,加1.(虽然这么说,但是java的很多类库都是向后兼容的,不像.NET,2.0,3.5,4.0使用哪个版本开发的程序必须安装哪个版本的运行时)
<小版本号>:当类库添加新的特性时,加1.(比如Arcgis javascript api,3.7版本之后添加了一个LabelLayer,可以在前台绘制要素标签。)
<微小版本号>:一般是修正了bug或者进行了微小的改变等时,加1.

最后说下方括号中的可选部分:
-M:是里程碑(milestone)的缩写。表示下一次发布里程碑版本时类库的特性集合很可能会发生改变,即不保证其特性集合的不变性。最后一个发布的里程碑版本号会成为发布候选版本(-RC1版本)。
-RC:是发布候选版本(Release Candidate)的缩写。表示类库的特性集合已经固定,即可以保证其特性集合的不变性。接下来发布的其他RC版本只会修正一些发现的bug。当然,如果项目组发现了严重的设计错误,那么可能就要推到重来了。最后发布的-RC版本会成为第一个GA版本。
不带方括号中内容时:即为-RC中提到的GA版本,(General Availability)的缩写。表示类库已经足够稳定,可以用在生产环境中了,happy去吧。


Mina发布版本号增长示例

2.0.0-M1 -> 2.0.0-M3 -> 2.0.0-M3 -> 2.0.0-M4 -> 2.0.0-RC1 -> 2.0.0-RC2 -> 2.0.0-RC3 - 2.0.0 -> 2.0.1 ->; 2.0.2 ->; 2.1.0-M1 


你可能感兴趣的:(编程基础,软件,类库,版本号,程序)