2.7 KiB
2.7 KiB
Purpose
定义 DiAL 应用版本号的唯一来源、手动版本升迁命令和版本管理文档要求。
Requirements
Requirement: 应用版本唯一来源
系统 SHALL 使用根目录 package.json.version 作为 DiAL 应用版本号的唯一来源。版本号 MUST 使用 MAJOR.MINOR.PATCH 数字格式,不包含 prerelease 或 build metadata。
Scenario: 读取应用版本
- WHEN 开发、构建或版本升迁流程需要获取 DiAL 应用版本
- THEN 系统 SHALL 从根目录
package.json.version读取版本号
Scenario: 版本格式有效
- WHEN
package.json.version为0.1.0、1.2.3等MAJOR.MINOR.PATCH数字格式 - THEN 版本管理流程 SHALL 视为有效版本
Scenario: 版本格式无效
- WHEN
package.json.version缺失或不符合MAJOR.MINOR.PATCH数字格式 - THEN 版本管理流程 MUST 失败并输出可读错误,不得继续写入错误版本
Requirement: 手动版本升迁命令
项目 SHALL 通过 package.json scripts 提供基于 Bun 的手动版本升迁命令,支持 patch、minor、major 和显式设置版本。
Scenario: 升迁 patch 版本
- WHEN 当前版本为
1.2.3且开发者运行bun run version:patch - THEN 系统 SHALL 将
package.json.version更新为1.2.4
Scenario: 升迁 minor 版本
- WHEN 当前版本为
1.2.3且开发者运行bun run version:minor - THEN 系统 SHALL 将
package.json.version更新为1.3.0
Scenario: 升迁 major 版本
- WHEN 当前版本为
1.2.3且开发者运行bun run version:major - THEN 系统 SHALL 将
package.json.version更新为2.0.0
Scenario: 显式设置版本
- WHEN 开发者运行
bun run version:set 0.2.0 - THEN 系统 SHALL 将
package.json.version更新为0.2.0
Scenario: 拒绝无效设置版本
- WHEN 开发者运行
bun run version:set 1.0.0-beta.1或其他非MAJOR.MINOR.PATCH版本 - THEN 系统 MUST 失败并保持
package.json.version不变
Scenario: 版本升迁不执行发布副作用
- WHEN 开发者运行任意版本升迁命令
- THEN 系统 MUST NOT 自动创建 git commit、git tag、changelog 或 release
Requirement: 版本管理文档
项目 SHALL 在开发文档中说明版本号规则、升迁命令、展示位置和暂不支持的发布自动化能力。
Scenario: 开发者查阅版本规则
- WHEN 开发者阅读 README.md 或 DEVELOPMENT.md
- THEN 文档 SHALL 说明
package.json.version是唯一版本源,以及bun run version:patch、bun run version:minor、bun run version:major、bun run version:set <version>的用途