软件版本信息定义规则
软件版本信息定义规则
前言:
如果你正为软件版本迭代得越来越多烦恼,或者想寻找更规范的版本定义,那么请阅读这篇文章,也许你会有启发。
1 软件版本信息码
软件版本信息码组成 :协议名/产品名(Name)(A).系列号(Series)(B).主版本号(Major)(C).次版本号(Minor)(D).修订版本号(Patch)(E).日期版本号(Date)(F)(阶段版本号(Phase)(G))。
例:MPP2.0.A.1.0.0.200510(R)
1.1 协议名/产品名(A)
作用 :用于区分不同的大类产品。
规则 :由协议类型+协议版本号。如MPP2.0。优先使用协议名,无具体协议的使用大类产品名。
可能值 :
- None: 空,表示未知,不确定。
- MPP: 微软协议笔。
- USI:协议笔。
- HPP:华为协议笔。
- APP:苹果协议笔。
- UNI:万能笔。
后续视情况新增。
1.2 系列号(B)
作用 :用于区分软件差异。所有外部差异使得软件版本之间存在明显区分的因素都应该使其有不同的系列号。比如:Pencil + da262及Pencil + LIS2DH12TR、Pencil + 单路打码及Pencil + 双路打码、Pencil + 不同的引脚接线等。
规则 :默认一位字母,不够时考虑新增一位,不区分大小写。如:A(a),B(b)。
可能值 :A(a)~Z(z)。
1.3 主版本号(C)
作用 :关键里程碑式的修改。当模块有较大变动时,比如模块为单位的变动,架构的变化。
规则 :从0开始递增,但正式发布的第一个版本必须升级到1.0.0。
1.4 次版本号(D)
作用 :较为大的修改。一般为功能性的变动等。
规则 :从0开始递增。
1.5 修订版本号(E)
作用 :较小的修改。如Bug的修复,参数的调整,代码规范的修改等。
规则 :从0开始递增。
1.6 日期版本号(F)
作用 :记录版本修改发布的日期,不同使其的修改应从日期上能区分出先后顺序,使用日期版本也是为了方便进行检索。
规则 :使用日期后六位,按照中国人的习惯日期顺序应为年月日。如:200505,标识2020年05月05日。
1.7 阶段版本号(G)
作用 :此版本号用于标注当前版本的软件处于哪个开发阶段。
规则 :将开发过程分为五个阶段,对应五种版本。
- Base版:基础版。此版本表示该软件还在基础开发阶段,较多功能还未实现。
- Alpha版:内部试用版。此版本表示该软件完成了基本的功能开发,可能存在较多的Bug需要进行具体的测试,通常在开发人员内部交流。
- Beta版本:对外公测版。该版本已经经过经过了较多测试,Bug较少且不存在严重的Bug。需要进一步系统大规模的测试。
- RC版:成熟版。该版本已经过系统性的测试,几乎不存在Bug,接近于正式版。
- Release版:最终版/正式版/标准版。为最终交付的版本,可简写为大写字母R。
可能值 :
- Base:基础版。
- Alpha:内部试用版。
- Beta:对外公测版。
- RC:成熟版。
- Release:最终版/正式版/标准版。
2 释意举例说明
MPP2.0.A.2.2.3.200510(R) 表示此版软件为MPP2.0协议下的A系列软件,经历过一次重大修改,重大修改后进行了2次功能性变更,最近一次功能性变更后又经历了3次小的调整。唯一标识日期版本为200510,为最终版软件。
3 更新版本信息规则
软件版本信息码组成 :协议名/产品名(A).系列号(B).主版本号(C).次版本号(D).修订版本号(E).日期版本号(F)(阶段版本号(G))
3.1 旧项目变更
从左往右,当某项信息被修改时,其右侧的信息都需要进行修改,如:MPP2.0.A.2.2.3.200510(R)进行了一次功能变更后版本号应该为:MPP2.0.A.2.3.0.200510(Beta),修订版号被清零。
3.2 新项目立项
比如立项MPP2.5协议的第一个软件项目,版本号为:MPP2.5.A.0.0.1.200510(Base),新项目的主版本号从0开始,次和修订版本号从0开始递增,阶段为Base。
4 软件发布树
按如上定义软件版本规则,在发布版迭代树中效果如下:
1 | graph TB |
可以较好的表示出版本升级和分支关系。协议名/产品名(A).系列号(B)可以唯一确定出一个纵向分支,比如Pencil.A系列。而日期版本号可以唯一对应到一个版本的软件发布,在进行检索或简化记录信息时可以只使用日期版本信息。