版本号规范
版本号
版本号规范
- 格式:标准版本号格式为
x.y.z.e,其中x代表主版本号,y代表次版本号,z代表补丁号,e代表额外版本号,每个字段之间由.分隔。
- 主版本号:主版本号一般从0或者1开始,可包含修饰信息,如
stable_0,dev_v1,fixed_1等,一般当项目进行重大修改,如API兼容性变化时,则版本号加1。
- 次版本号:次版本号是相对于主版本号而言,一般对应的是主版本下局部的调整,如增加功能时(不影响API的兼容性)。
- 补丁号:一般是Bug的修复或者细小的变动。
- 额外版本号:只对本身包含形如
x.y.z版本号的三方仓库使用,一般不使用。
- 举例:
stable_v0.1.2.60, 其中stable_v0代表主版本号,1代表次版本号, 2代表补丁号,60代表额外版本号
- 规范:
- 一个标准的版本号必须包含
主版本号以及次版本号,补丁号以及额外版本号则为可选。
- 除了
主版本号可包含修饰信息,其余字段不建议包含除数字以外的信息。
- 版本号必须按数值递增,如 dev_v0.0.1 -> dev_v1.0.0 -> dev_v1.11.0。
- 当项目进行重大修改时,
x必须递增,y和z同时设置为0。
- 当局部调整时,
y必须递增,同时z设置为 0。
- 当进行Bug修复或者细小的变动时,
z必须递增。
版本号命名
- 命名版本号时,着重考虑
主版本号字段,尽量将当前仓库的重要信息添加到主版本号字段,例如代码来源,当前分支,当前状态,但是也不宜过长,需做适当取舍。
- 对于自建仓库,打
tag时只需打上主版本号和次版本号,例如git tag -a dev_v1.0 -m "xxx", 打上tag后,使用命令git describe --tags,获得的版本号为dev_v1.0,如果有5次新提交,获得的输出为v1.0-5-gxx,则此时对应的版本号为v1.0.5。
- 对于三方仓库,大多数都有自己的版本号,比如
uboot,kernel等,且一般都包含了xyz字段,对于这些仓库,需使用其已经存在的版本号作为基础版本号,然后使用e字段记录仓库修改。比如对于一个kernel仓库,通过makefile得知其版本号为4.6.23,使用命令git tag -a v4.6.23打上tag后,如果有5次新提交,获得的输出为v4.6.23-5-gxx,则此时对应的版本号为v4.6.23.5。