Skip to content

版本号命名规范

软件版本号是用于标识软件不同发布阶段或不同修订版本的数字、字母或它们的组合。在软件开发和维护过程中,版本号扮演着至关重要的角色,能够帮助开发者、测试人员、用户以及系统管理员区分软件的不同版本,跟踪软件的更新和变更,以及确保软件的兼容性和稳定性。

版本号特性

版本号由如下特性

  • 唯一性:每个版本号都应该是唯一的,以确保能够准确识别软件的特定版本。
  • 可追踪性:版本号应该能够清晰地反映软件的发布顺序、变更历史和修复内容。
  • 易读性:版本号应该易于理解和记忆,方便用户和开发人员进行沟通。
  • 兼容性:版本号有时也用于指示软件之间的兼容性,特别是当软件依赖于其他库或框架时。

常见的版本号格式

常见的版本号格式有:

  • 数字版本号:例如 1.0.02.1.3
  • 字母版本号:例如 alphabetarc
  • 混合版本号:例如 1.0.0-alpha2.1.3-rc.1
  • 语义化版本号:例如 1.0.02.1.33.0.0-alpha.1

当前比较推崇的版本号格式是语义化版本号,下面将详细介绍。

语义化版本号(SemVer)

语义化版本号,通常简称为 SemVer(Semantic Versioning),是一种软件版本号的标准化方案。它旨在使软件版本号的管理更加透明和可预测,确保软件的升级和迁移过程更加可控,并减少意外的兼容性问题。

语义化版本号的组成

语义化版本号由三个部分组成:主版本号(Major)、次版本号(Minor)和修订版本号(Patch)。这三个部分通过点(.)分隔,形成一个标准的版本号格式,如 1.2.3

  1. 主版本号(Major):表示软件的主要版本变更。当进行大规模的、不兼容的变更时,应该增加主版本号。
  2. 次版本号(Minor):表示向后兼容的新功能添加。当软件以向下兼容的方式添加新功能时,应该增加次版本号。
  3. 修订版本号(Patch):表示向后兼容的错误修复或小的改进。

命名原则

  1. 项目初版,版本号可命名为 0.1.0
  2. 当项目有了重大的修改或者局部修改累计较多导致全局变化时,主版本号可以加 1。一般的,当项目开发完成,测试通过,可以对外公布的时候,主版本号才从 0 变为 1。这样看来,主版本为 0,就代表着项目处于开发阶段。
  3. 当项目只是增加部分功能时,主版本号不变,子版本号加 1,修正版本号重置为 0
  4. 当项目仅仅进行局部修改或者修复 BUG 时,只对修正版号加 1

先行版本号

当要发布大版本或者核心的 Feature时,但是又不能保证这个版本的功能 100% 正常。这个时候就需要发布先行版本。比较常见的先行版本包括:内测版、灰度版本了和 RC 版本。Semver 规范中使用 alphabetarc(以前叫做 gama)来修饰即将要发布的版本。它们的含义是:

  • alpha: 内部版本
  • beta: 公测版本
  • rc: 即 Release candidate,正式版本的候选版本

格式:主版本号.子版本号.修正版本号.[a-c][正整数]

例如:1.0.0-alpha.01.0.0-alpha.11.0.0-beta.01.0.0-rc.01.0.p-rc.1 等版本。

小结

版本号命名规范是软件开发中非常重要的一部分,它可以帮助我们更好地管理和维护软件的版本。通过遵循语义化版本号(SemVer)规范,我们可以确保软件版本号的唯一性、可追踪性、易读性和兼容性。当然,语义化版本号只是较为通用的做法。在实际项目中,我们还需要根据具体情况进行调整和优化,以适应项目的需求和特点。

参考

  1. 版本号命名规则
  2. 版本号命名规范及原则
  3. Semver(语义化版本号)扫盲