本文最后更新于 2024-05-26,文章内容可能已经过时。

一、总原则

  1. 标准版本号必须采用 XYZ 的格式,其中 X、Y、Z 为非负的整数,禁止在数字前方补零。
  2. 版本是是严格递增的,例如 :1.0.0 --> 1.1.0 --> 1.1.1
  3. 在发布重要的版本之前,可以发布 alpha,RC 等先行版本
  4. alpha 和 RC 版本的关键字后面可以带上次数和 meta 信息
  5. 版本的优先层级指的是不同版本在排序时如何进行比较。判断优先层级时,必须把版本依次排序为主版本号、次版本号、修订号及先行版本号后进行比较。

二、软件版本阶段说明

  • Alpha 版: 此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的 Bug 较多,需要继续修改。
  • Beta版: 该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI。
  • RC版: 该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几。
  • Release 版: 该版本意味“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本。该版本有时也称为标准版。一般情况下,Release 不会以单词形式出现在软件封面上,取而代之的是符号®。

三、版本命名规范

第一种:

软件版本号由四部分组成:

<主版本号><子版本号><阶段版本号><日期加希腊字母版本号>

比如:

1.1.1.240304_beta

第二种:

这种方式比较常规,它是完全的版本号定义,分为三部分:

<主版本号>.<次版本号>.<修订版本号>,例如 1.0.0

四、版本号修改需遵循的规则

总原则 :

对于主版本号、次版本号、修订版本号这三个我们需要遵循一个总的规则,从 1.0.0 版本开始,主版本号加一则后边的版本号全部置零(及次版本号和修订版本号),次版本号加一则修订版本号置零,修订版本号加一时前边的主版本号和次版本号不需要改变。
对于日期号和希腊字母版本号可以根据实际情况增加。

细要说明

  1. 主版本号:软件功能有较大改动时进行改变,例如增加了新的功能模块或者架构发生了变化。此版本号由项目决定是否修改。
  2. 子版本号:当功能有一定的增加或改变,比如增加了一个注册功能,任务形象选择功能,或者权限控制都可以进行版本号的变动。此版本号由项目决定是否修改。
  3. 阶段版本号/修订版本号:一般是 Bug 修复或是一些小的变动,要经常发布修订版,时间间隔不限,修复一个严重的 bug 即可发布一个修订版。具体视项目情况而定。
  4. 日期版本号:用于记录修改项目的当前日期,每天对项目的修改都需要更改日期版本号。此版本号由开发人员决定是否修改。
  5. 希腊字母版本号: 此版本号用于标注当前版本的软件处于哪个开发阶段,当软件进入到另一个阶段时需要修改此版本号。此版本号由项目决定是否修改。

除了遵循上边的规则外,在开发过程中,通过文档或者搭建产品官网的形式记录每个版本的变动说明。