版本号基本格式
软件的版本号一般由多个部分组成,最基本格式为 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
 沙滩星空的博客
沙滩星空的博客