版本号
一般我们使用语义化版本(Semantic Versioning)的命名方式,简称 SemVer。
官方网站:semver 版本管理规范
中文译本:https://semver.org/lang/zh-CN/
版本号的格式为:[X].[Y].[Z].[B]
2.21.210322G (c9f)
- X(主版本号):2
- Y(子版本号):21
- Z(修订号):210322G
- B(build,编译版本号):(c9f)
[主版本号].[子版本号].[修订号].[编译版本号] 必须为非负整数,且不得包含前导零,必须按数值递增
主版本号
当重大升级改动,一般 API 的兼容性变化时,包括但不限于新增特性、修改机制、删除功能, 一般不兼容上一个主版本号。
- 主版本号为0时表示预研版本
- 主版本号默认从0开始,单步递增,步长为1
- 1.0的版本号:1.2.210222(11e7)
- 19的版本号: 2.19.210115(1193)
- 21的版本号: 2.21.210220(c7e)
1.0的硬件都是一体机,19和21的硬件都是分体机(屏幕主机是分开的)。这对于产品来说是一个重大的升级,所有软件必须重新适配。所以主版本号应该加一(这里的19和21貌似指的是年份)
子版本号
新增或修改功能时,必须是向前兼容,不影响软件的整体流程或概念的更新。
- 主版本号升级时,子版本号重置为0
- 子版本号默认从0开始,单步递增,步长为1
- 19的版本号: 2.19.210115(1193)
- 21的版本号: 2.21.210220(c7e)
19是基于Android4.4开发的,21是基于Android9.0开发的。9.0兼容4.4,但是4.4没有9.0中的新功能。所以子版本号加一
修订版本号
一般用于 Bug 修复,使用当天的年月日(YYYYMMDD)作为修订版本号
- 主版本号或子版本号升级时,修订版本号重置为0
- 1.0的版本号:1.2.210222(11e7)
- 19的版本号: 2.19.210115(1193)
- 21的版本号: 2.21.210220(c7e)
上面的三个版本号,分别代表210222、210115、210220三个日期当天发布了新版本
编译版本号
一般用于 Bug 修复,使用当天的年月日(YYYYMMDD)作为修订版本号
- 1.0的版本号:1.2.210222(11e7)
- 19的版本号: 2.19.210115(1193)
- 21的版本号: 2.21.210220(c7e)
上面的三个版本号,括号中的是16进制的数字。转换为十进制分别是4583、4499、3198。表示编译了多少次,每编译一次都会加一。
进制转换器:https://tool.oschina.net/hexconvert
软件版本阶段说明
- alpha:内部版本。此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的Bug较多,需要继续修改。
- beta:测试版。此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的Bug较多,需要继续修改。
- release:发行版。该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几。
- rc:即将作为正式版发布。该版本相对于α 版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI。
- demo:演示版
- enhance:增强版
- free:自由版
- full version:完整版,即正式版
- lts:长期维护版本
- standard:标准版
- ultimate:旗舰版
- upgrade:升级版