版本命名规范

上家公司在发版时对tag的命名一直不是很规范,参考了各大网站及博客上的说明,做个笔记。


版本号格式:

常见格式:[name].A.B.C-[state]
name:可选字段,一般为 v,表示 version;
A:Major主版本号,一般当软件整体重写,或当API兼容性变化时递增;
B:Minor次版本号,当增加功能时(API兼容性不变化)递增;
C:Patch修订号,Bug修复时(API兼容性不变化)递增;
state:可选字段,表示版本状态,用alpha等修饰词


Detail

  • A,B,C为非负整数,且不得包含前导0,按数值递增。
    🌰1.2.0->1.3.0->1.4.0

  • 0.B.C表示处于开发阶段,API不稳定,1.0.0表明已有稳定版本API

  • 当API兼容性变化时,A++,B=C=0;

  • 当功能新增或API标记为deprecated弃用时,B++,C=0;

  • 当Bug Fix时,C++;

  • 先行版本号(Pre-release)表示该版本不稳定,可能有兼容问题。
    格式1.0.0.[a-c][正整数]
    🌰1.0.0.a3 1.0.0.b89 1.0.0.c1999008

  • 开发版本号多用于CI-CD,格式A.B.C.dev[正整数]
    🌰1.0.1.dev5

  • 版本号排序规则:

    • 主版本号,次版本号,修订号
      🌰1.0.0<1.0.1<1.1.1<2.0.0
    • 对先行版本号与开发版本号
      🌰1.0.0.a10<1.0.0 2.1.0.dev2<2.1.0
    • 存在字母,按ASCII码排序
      🌰1.0.0.a10<1.0.0.b10

Tip:版本一经发布,不得修改!


修饰词

  • alpha 内部版本
  • beta 测试版
  • demo 演示版
  • enhance 增强版
  • free 自由版
  • full version 完整版,正式版
  • lts 长期维护版
  • release 发行版
  • rc 即将正式发布
  • standard 标准版
  • ultimate 旗舰版
  • upgrade 升级版

参考: