简介
软件开发规范的版本管理是良好的软件过程管理的一部分
版本号
版本号命名格式如下:Major.Minor[.Revision][-Milestone]
Major(主版本号):仅适用数字,表示了产品的重大架构变更,适用于对产品的大量重写的情况。如果这一位发生变化意味着需要向公司产品命名委员会备案,可能意味着市场或法律问题,例如不同的市场策略,以及软件著作权申请等问题。
Minor(子版本号),仅适用数字,表示较大范围的功能增加和变化,以及Bug修改。通常意味着软件提供的功能(需求)发生变化。
Revision(增量版本号),仅适用数字,适用于产品的功能没有变化,而对上一版本中的bug或缺陷进行的修正。当该版本号为0时,约定可以不指定(推荐),例如“1.2.0”可以被简写为“1.2”。
Milestone(里程碑版本号),通常是由一个单词,且后面还可以跟上一个数字的版本号,例如“-alpha-2”。对于在这里可以使用的单词是有行业惯例的(参见附件:里程碑版本常用单词列表),通常来说除非特殊情况,不建议采用此列表之外的单词。
版本的迁移
被标以后缀“-SNAPSHOT”的版本,表示这是开发期间的快照版本,之前的部分表示将要发布的版本号。当开发到一定阶段后进行产品发布动作,此时将产生一个发布版本,其对应的版本号就没有“-SNAPSHOT”。
发布制品签名
软件开发作为生产过程,最终将以制品的方式发布,例如:exe、dll、ocx、bpl、jar、war等。出于对已发布制品管理的需要,也可能更进一步保护开发者权益的需要,有必要在制品中打上签名。通常来说其中应该包括生产厂商名、版权声明、产品名、制品名以及制品的版本号。
具体签名的方式根据所采用的技术的不同会有所区别。对于在java平台上开发,规定至少应该将上述信息写入清单文件,通常位于META-INF/MANIFEST.MF。
里程碑版本常用单词列表
- SNAPSHOT:快照版;
- Alpha:内部测试版;
- Beta:外部测试版;
- Gamma:非常接近发布的测试版;
- RC:发布候选版;
- Release:发行版。