TTHSD 版本管理规范
版本:1.0.0最后修订日期: [请填写当前日期]
本文档定义了 TTHSD 项目的版本号管理规则,旨在确保版本演进清晰、一致,并促进项目与依赖项之间的兼容性理解。本规范基于 语义化版本 2.0.0 制定。
1. 核心术语与要求级别
本文档中,“必须”(MUST)、“不得”(MUST NOT)、“要求”(REQUIRED)、“建议”(RECOMMENDED)、“可以”(MAY)、“可选”(OPTIONAL)等关键词,按 RFC 2119 的表述进行解释。
2. 版本号格式
TTHSD 的版本号必须遵循以下格式:
<主版本号>.<次版本号>.<修订号>[-<预发布标识符>.<预发布编号>][+<构建元数据>]各部分说明如下:
| 组成部分 | 名称 | 必需性 | 规则与示例 |
|---|---|---|---|
<主版本号> | Major | 必需 | 非负整数,不得包含前导零。例如:0,1,42。 |
<次版本号> | Minor | 必需 | 非负整数,不得包含前导零。例如:0,1,23。 |
<修订号> | Patch | 必需 | 非负整数,不得包含前导零。例如:0,1,7。 |
-<预发布标识符>.<预发布编号> | Pre-release | 可选 | 标识符为小写字母字符串,编号为正整数,且不得包含前导零。例如:-dev.1,-rc.3。 |
+<构建元数据> | Build metadata | 可选 | 由字母、数字、连字符组成的字符串。例如:+20250226,+nightly.2025.03。 |
有效的版本号示例:
1.2.32.0.0-dev.13.1.5-beta.2+202502260.5.2-alpha.1
3. 核心版本(X.Y.Z)的递增规则
版本号的核心部分(<主版本号>.<次版本号>.<修订号>)必须始终根据以下规则递增。即使是预发布版本(如 -beta.1),其核心版本号也应准确反映其所基于或将要发布的正式版本的变更级别。
- 主版本号(X):当进行了不兼容的 API 或核心功能变更时递增。
- 次版本号(Y):当以向后兼容的方式添加新功能时递增。
- 修订号(Z):当进行了向后兼容的问题修复时递增。
4. 预发布版本阶段
在进入正式版之前,或为正式版发布候选时,必须使用预发布后缀来标识其成熟度。TTHSD 定义以下预发布阶段:
| 阶段 | 标识符 | 版本号示例 | 说明 |
|---|---|---|---|
| 开发版 | dev | 1.3.0-dev.1 | 活跃开发中的内部快照,功能不完整或不稳定,仅供核心开发者使用。 |
| 内部测试版 | internal | 1.3.0-internal.1 | 完成部分功能,交付给内部测试团队验证,可能存在较多缺陷。 |
| Alpha 测试版 | alpha | 1.3.0-alpha.1 | 核心功能基本完成,面向有限的外部测试者收集早期反馈,预期存在较多问题。 |
| Beta 测试版 | beta | 1.3.0-beta.1 | 功能已完整,主要缺陷已修复,面向更广泛的用户进行公开测试。 |
| 候选发布版 | rc | 1.3.0-rc.1 | 接近正式版本,若无重大问题,将直接作为正式版发布。 |
预发布规则:
- 预发布标识符必须为小写字母。
- 预发布编号必须为从
1开始递增的正整数。 - 当版本从一个阶段演进到下一个阶段时,编号必须重置为
1。例如:1.3.0-dev.5->1.3.0-internal.1。
5. 构建元数据
构建元数据可以附加在版本号后,用于标识构建的具体环境、时间戳或提交信息。
- 构建元数据必须以加号
+与核心版本或预发布版本分隔。 - 构建元数据不得影响版本优先级。即
1.2.3+20250226与1.2.3+20250227被视为同一版本。
6. 版本优先级
版本优先级必须严格按语义化版本规则确定:
- 版本号按顺序比较:主版本号、次版本号、修订号。数值越大,版本越新。
- 正式版本(无预发布后缀)的优先级总是高于任何预发布版本。例如:
1.3.0>1.3.0-rc.1。 - 对于有相同核心版本号的预发布版本,其优先级由标识符决定。标识符按字典序比较:
dev<internal<alpha<beta<rc。 - 相同核心版本号且标识符相同的预发布版本,编号大的优先级更高。例如:
1.3.0-beta.2>1.3.0-beta.1。
7. 版本管理流程示例
假设项目即将从 1.2.0 版本开始开发 1.3.0 版本:
- 开发阶段:版本迭代为
1.3.0-dev.1、dev.2…… - 内部测试:达到内部测试标准,发布
1.3.0-internal.1,迭代internal.2…… - Alpha 测试:功能可对外测试,发布
1.3.0-alpha.1,迭代alpha.2…… - Beta 测试:缺陷收敛,发布
1.3.0-beta.1,迭代beta.2…… - 候选发布:准备最终验证,发布
1.3.0-rc.1,迭代rc.2…… - 正式发布:验证通过,移除预发布后缀,发布正式版
1.3.0。
8. 规范的修订
本规范自身将使用语义化版本进行管理。对规范的任何修订(包括规则的澄清或变更),都必须更新此文档的版本号,并记录于下:
| 版本 | 日期 | 修订说明 | 作者 |
|---|---|---|---|
| 0.1.0 | 2026/2/27 | 初始版本,基于 SemVer 2.0.0 建立 | Sxxyrry |
