Skip to content

版本号规范

版本号规范通常指的是软件发布时所使用的编号体系,它用于标识软件的不同版本。一个良好的版本号系统可以帮助开发者、测试人员和用户清楚地了解软件的变更情况,以及不同版本之间的关系。目前最广泛接受的版本号规范是语义化版本控制(Semantic Versioning),简称 SemVer。

语义化版本控制 (SemVer)

语义化版本控制规定了版本号应采用 MAJOR.MINOR.PATCH 的格式:

  • 主版本号 (MAJOR):当你做了不兼容的 API 修改时,增加主版本号。
  • 次版本号 (MINOR):当你以向后兼容的方式添加功能时,增加次版本号。
  • 修订版本号 (PATCH):当你做了向后兼容的问题修正时,增加修订版本号。

例如,版本 1.0.0 表示第一个正式发布的稳定版。如果接下来修复了一些错误但没有改变公共API,那么下一个版本将是 1.0.1。如果增加了新功能但保持了向后兼容性,那么版本会变成 1.1.0。如果有重大更新或更改导致现有代码不再兼容,则版本会升级到 2.0.0

其他版本号规范

除了 SemVer 之外,还有其他版本号规范被使用:

  • 日期时间戳:有些项目可能使用构建日期作为版本的一部分,如 YYYY.MM.DD 或者更详细的 YYYYMMDD.HHMMSS 格式。
  • 内部版本号:一些公司可能会使用自定义规则,比如基于内部的版本控制系统中的修订号。
  • 分支名称和提交哈希:在开发阶段,特别是当使用 Git 等分布式版本控制系统时,有时会使用分支名加上特定提交的简短哈希值来表示版本,如 feature-branch-name-abc1234

版本预发布和构建元数据

SemVer 还允许在版本号之后附加预发布版本和构建元数据:

  • 预发布版本:用连字符 - 分隔,可以用来标记 alpha、beta 或 rc(候选发布)等状态,例如 1.0.0-alpha.1
  • 构建元数据:用加号 + 分隔,可以包含任意的构建信息,这不会影响版本比较的结果,例如 1.0.0+build.1234

选择合适的版本号规范取决于项目的具体需求、团队的工作流以及对用户的透明度要求。对于大多数开源项目和遵循良好实践的企业级应用来说,语义化版本控制是一个非常合适的选择。

参考资料