版本号规范

330 阅读2分钟

版本号

版本号规范

  • 格式:标准版本号格式为x.y.z.e,其中x代表主版本号y代表次版本号z代表补丁号e代表额外版本号,每个字段之间由.分隔。
  • 主版本号:主版本号一般从0或者1开始,可包含修饰信息,如stable_0dev_v1fixed_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必须递增,yz同时设置为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
  • 对于三方仓库,大多数都有自己的版本号,比如ubootkernel等,且一般都包含了xyz字段,对于这些仓库,需使用其已经存在的版本号作为基础版本号,然后使用e字段记录仓库修改。比如对于一个kernel仓库,通过makefile得知其版本号为4.6.23,使用命令git tag -a v4.6.23打上tag后,如果有5次新提交,获得的输出为v4.6.23-5-gxx,则此时对应的版本号为v4.6.23.5