Ethan's Blog

记录和思考

GNU风 格的软件版本号命名规范

一、GNU 风格的版本号命名格式

主版本号 . 子版本号 [. 修正版本号 [. 编译版本号 ]]

Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]]

示例 : 1.2.1, 2.0, 5.0.0 build-13124

二、一些约定

Major :具有相同名称但不同主版本号的程序集不可互换。例如,这适用于对产品的大量重写,这些重写使得无法实现向后兼容性。

Minor :如果两个程序集的名称和主版本号相同,而次版本号不同,这指示显著增强,但照顾到了向后兼容性。例如,这适用于产品的修正版或完全向后兼容的新版本。

Build :内部版本号的不同表示对相同源所作的重新编译。这适合于更改处理器、平台或编译器的情况。

Revision :名称、主版本号和次版本号都相同但修订号不同的程序集应是完全可互换的。这适用于修复以前发布的程序集中的安全漏洞。

程序集的只有内部版本号或修订号不同的后续版本被认为是先前版本的修补程序 (Hotfix) 更新。

三、版本号的管理策略

  1. 项目初版本时,版本号可以为 0.1 或 0.1.0, 也可以为 1.0 或 1.0.0;
  2. 当项目在进行了局部修改或 bug 修正时,主版本号和子版本号都不变,修正版本号加 1;
  3. 当项目在原有的基础上增加了部分功能时,主版本号不变,子版本号加 1,修正版本号复位为 0,因而可以被忽略掉;
  4. 当项目在进行了重大修改或局部修正累积较多,而导致项目整体发生全局变化时,主版本号加 1;
  5. 另外,编译版本号一般是编译器在编译过程中自动生成的,我们只定义其格式,并不进行人为控制。

四、后缀

版本号的后面还可加入 Alpha, Beta, Gamma, Current, RC (Release Candidate), Release, Stable 等后缀,后缀的后面还可以加入 1 位数字的版本号。常用的后缀如下:

α(alphal) 内部测试版

α 版,此版本表示该软件仅仅是一个初步完成品,通常只在软件开发者内部交流,也有很少一部分发布给专业测试人员。一般而言,该版本软件的 bug 较多,普通用户最好不要安装。

β(beta)外部测试版

该版本相对于 α 版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过大规模的发布测试来进一步消除。这一版本通常由软件公司免费发布,用户可从相关的站点下载。通过一些专业爱好者的测试,将结果反馈给开发者,开发者们再进行有针对性的修改。该版本也不适合一般用户安装。

γ(gamma)版

该版本已经相当成熟了,与即将发行的正式版相差无几,如果用户实在等不及了,尽可以装上一试。

RC(Release Candidate)版

Candidate 是候选人的意思,用在软件上就是候选版本。Release.Candidate.就是发行候选版本。和 Beta 版最大的差别在于 Beta 阶段会一直加入新的功能,但是到了 RC 版本,几乎就不会加入新的功能了,而主要着重于除错(该版本已经相当成熟了,基本上不存在导致错误的 BUG,与即将发行的正式版相差无几)。

R(Release)最终发行版

该版本意味“最终释放版”,在出了一系列的测试版之后,终归会有一个正式版本,对于用户而言,购买或使用该版本的软件绝对不会错。该版本有时也称为标准版。一般情况下,release 不会以单词形式出现在软件封面上,取而代之的是符号 (r) ,如 windows nt(r) 4.0、ms-dos(r) 6.22 等。

Reference

  1. http://www.cnblogs.com/sdjxcolin/archive/2007/07/02/803376.html
  2. http://licoolxue.iteye.com/blog/602895
  3. http://blog.csdn.net/cc_china/article/details/7450775

相关文章: