版本号基本格式
软件的版本号一般由多个部分组成,最基本格式为 A.B.C
。
其中 A、C 和 C 分别代表 主版本号
、次版本号
和 修订号
。
如果项目需要构建打包才能使用的,还有个构建版本号。
如:华为HMS Core中,版本号的格式为 A.B.C.D
,其中 D为产品的 构建号
。
在主版本号、次版本号和修订号的含义如下:
- 主版本号(MAJOR)改动:一期项目用
0.1.0
;二期项目用1.1.0
;三期项目用2.1.0
; - 子版本号(MINOR)改动:增加了权限管理功能模块,版本号由
0.1.3
改为0.2.0
; - 修正版本号(PATCH)改动:修正了一个页面显示字符串,版本号由
0.1.3
改为0.1.4
;
开发阶段版本号
开发阶段版本号,又称希腊字母版本号,用于标注当前版本的软件,处于哪个 开发阶段
。
可以使用 -
连接符加上标识符来指定,如 v1.0.0-alpha
alpha
: α是希腊字母的第一个,内部测试版。beta
: β是希腊字母的第二个,公开测试版。rc
:Release Candidate
,表示最终测试版本,发行候选版本。正式版的前一个版本,将bug修改完就可以发布成正式版。release
: 用户使用的正式发布版。-upgrade
: 修正错误或增加功能。
数据库版本管理
概念说明:数据库软件版本号和数据库结构版本号
数据库软件版本号
:在数据库内执行SELECT VERSION()
SQL语句查询。 如MySQL
为8.0.27
,5.7.44
...PostgreSQL
为17.0
,15.8
...数据库结构版本号
:与软件搭配使用的初始数据表
。包含数据表结构
,视图,存储过程,触发器,系列,包等。
数据库版本管理规范
- 软件版本必须锁定数据库软件版本。
- 数据库结构版本号,保存在数据表中。
- 数据库结构每次变更,必须写SQL脚本,以便数据库结构升级。
- 脚本名称,应包含数据库结构版本号。如果多个脚本有先后执行顺序要求,要在名称中写明顺序号。
- 数据库结构版本号的变更记录,包含脚本作用,对应软件产品业务功能等信息,保存在数据表中。
- 数据初始化: 以现有数据库对象(表,视图,存储过程,触发器,系列,包等)为基础,整理一份空数据库(基本配置数据保留),并生成脚本,与软件初始版本配套使用。
原则上,项目软件版本
始终锁定固定的 数据库软件版本
。除非出现特殊情况,如:数据库软件BUG修复更新,软件主版本大升级等。升级 数据库软件版本
应经过充分测试。
实践案例
企业基于开源软件 Odoo
,定制适用自身情况的 ERP
软件产品。基于 Odoo
社区版 17.0
。
有如下方案:
主版本号.子版本号.修正版本号
,v1.0.1
: 数据库结构改变时,修改次版本号
;只对数据做改动,程序不修改时,修改修正版本号
。开源软件大版本号.主版本号.子版本号.修正版本号
,v17.1.0.1
: 同上主版本号.子版本号.数据库结构版本号.修正版本号
,v1.0.1.1
: 新增数据库结构版本号
部分。
第一次正式发布,主版本号为1,次版本号为0,修正版本号也复位为0,
主版本号
- 为非负整数,软件产品初的正式版本
以1为起始
数字。 - 软件架构、设计思想改变或大量重写,主版本号 +1。
- 主版本号改变,不支持向后兼容性,次版本号、修正版本号复位为 0。
数据库结构版本号
+1
次版本号
- 为非负整数,
以0为起始
数字。 - 当软件产品在原有基础上增加或变更了功能,涉及数据库的改动,次版本号 +1。此时主版本号不变,修正版本号复位为 0。
数据库结构版本号
+1
数据库结构版本号
- 为非负整数,
以1为起始
数字。 - 只要数据库结构有变化,
数据库结构版本号
+1,不受版本号的其他部分影响。
修正版本号
- 为非负整数,
以0为起始
数字。 - 当软件产品BUG修复后,修正版本号+1,此时主版本号、次版本号不变。
常见版本号风格
业界最常用的三种版本控制的命名风格:
GNU
风格的版本号命名格式:子版本号 [. 修正版本号 [. 编译版本号 ]]
示例 :1.2.1
,5.0.0 build-13124
Windows
风格的版本号命名格式:主版本号 . 子版本号 [ 修正版本号 [. 编译版本号 ]]
.Net Framework
风格的版本号命名格式:主版本号.子版本号[.编译版本号[.修正版本号]]
应用软件版本号是怎么确定的,它有什么命名规范?https://www.zhihu.com/question/510951154/answer/2314890355
软件测试的版本号是怎么定义的? https://www.zhihu.com/question/582923764