版本号规范
为了确保 Armory 软件仓库的健康、可靠和安全性,并便于用户准确理解每个版本的软件包变化与兼容性,所有发布的新版软件包必须遵循 Semantic Versioning 语义化版本控制规范,并支持引入预发布版本号和构建版本号。
格式
版本号采用 X.Y.Z 格式,并可根据需要附加预发布版本号和构建版本号。最终的版本号割伤如下:
X.Y.Z[-pre-release][-build-meta]
- X:主版本号,表示不兼容的 API 修改或功能变更。
- Y:次版本号,表示向后兼容的新功能。
- Z:修订号,表示向后兼容的错误修复或小范围改动。
- -pre-release:预发布版本号,用于标识开发中的版本,表示该版本尚未达到生产环境稳定发布的要求。常见的预发布标识包括
-alpha
、-beta
和-rc
等。预发布版本号会附加在版本号的后面,格式为X.Y.Z-alpha
或X.Y.Z-beta
等。需要注意的是,正式版本始终大于预发布版本,例如1.2.3
大于1.2.3-beta.7
。 - -build-meta:构建版本号(也称为构建元数据),用于标识特定的构建版本或构建信息,常用于持续集成和自动化构建工具中。格式为
+buildmum
,其中 buildnum 通常是自动生成的构建号或时间戳等信息,例如1.2.3+20241209
。构建版本号也可以通过.
扩展为多个分段,例如1.2.3+20241209.sha.xxxxxx
,用于包含更详细的构建信息。此外,构建版本号也可以和预发布版本号一起使用,例如1.2.3-alpha.7+20241209
,以同时表示开发版本和构建信息。
长度限制
版本号(包括主版本号、次版本号、修订号、预发布版本号和构建版本号)总长度不应超过 64 个字符。这一限制包括了所有的数字、字母、符号和连接符(如 - 和 +)。
命名规则
代码状态 | 产品阶段 | 版本号命名规则 | 版本号示例 |
---|---|---|---|
首次发布 | 新产品发布 | 采用X.Y.Z 格式,其中 X 为主版本号、Y 为次版本号、Z 为修订号 | 1.0.0 |
向后兼容的错误修复 | 补丁版本 | 当发布仅修复错误且不影响现有功能时,递增修订号 Z | 1.0.1 |
向后兼容的新功能 | 小版本更新 | 当发布新增功能且与旧版本兼容时,递增次版本号 Y,并将修订号 Z 重置为零 | 1.1.0 |
不兼容的重大更改 | 主要版本更新 | 当发布不兼容的变更时,递增主版本号 X,并将次版本号 Y 和修订号 Z 重置为零 | 2.0.0 |
预发布版本 | 开发 / 测试阶段 | 在X.Y.Z 后添加预发布版本号,如-alpha 、-beta 或-rc 等 | 1.0.0-alpha、1.0.0-beta、1.0.0-rc1 |
构建版本 | 特定构建版本 | 在X.Y.Z 后添加构建版本号,用+ 相连,通常是自动生成的构建号或时间戳等信息 | 1.0.0+20241217 |