引入 VERSION 作为统一版本源,避免前端、后端、桌面打包和发布资产之间的版本漂移。 新增 tag 驱动的 Draft Release 流程与版本化资产命名,使本地演进和 GitHub 发布共享同一套约束。
2.5 KiB
2.5 KiB
仓库版本管理
Purpose
定义仓库统一版本源、镜像同步、发布一致性校验与构建版本注入规则,确保所有构建消费者使用同一版本语义。
Requirements
Requirement: 统一版本源
系统 SHALL 使用仓库根目录 VERSION 文件作为全仓唯一版本源,文件内容 SHALL 仅包含一行 x.y.z 格式的语义版本号。
Scenario: 读取有效版本号
- WHEN 仓库中的
VERSION文件内容为1.2.3 - THEN 本地工具和 CI SHALL 将
1.2.3视为当前仓库版本 - AND 其他版本消费者 SHALL NOT 覆盖该值作为权威来源
Scenario: 拒绝非法版本格式
- WHEN
VERSION文件内容不是x.y.z格式 - THEN 版本同步与发布校验流程 SHALL 失败
- AND 系统 SHALL 输出格式错误信息
Requirement: 版本镜像同步
系统 SHALL 提供仓库内的版本同步入口,将 VERSION 中的版本值写入需要镜像版本号的构建消费者。
Scenario: 同步前端镜像字段
- WHEN 执行版本同步流程且
VERSION为1.2.3 - THEN
frontend/package.json中的version字段 SHALL 被同步为1.2.3
Scenario: 同步构建模板值
- WHEN 执行版本同步流程且存在依赖版本号的构建模板或元数据模板
- THEN 这些模板消费的版本值 SHALL 与
VERSION保持一致 - AND 系统 SHALL NOT 要求用户手工修改多个版本文件
Requirement: 发布版本一致性校验
系统 SHALL 在发布前校验仓库版本与 Git tag 一致,确保发布锚点与仓库状态不漂移。
Scenario: tag 与 VERSION 一致
- WHEN 发布使用的 Git tag 为
v1.2.3且VERSION为1.2.3 - THEN 发布校验 SHALL 通过
Scenario: tag 与 VERSION 不一致
- WHEN 发布使用的 Git tag 为
v1.2.4但VERSION为1.2.3 - THEN 发布校验 SHALL 失败
- AND 系统 SHALL 阻止后续发布步骤继续执行
Requirement: 统一构建版本注入
系统 SHALL 在构建阶段把统一版本信息注入 frontend、server 和 desktop,而不是在运行时依赖外部发布平台查询版本。
Scenario: Go 二进制注入版本元数据
- WHEN 构建 server 或 desktop 二进制
- THEN 构建流程 SHALL 注入
version、commit和buildTime元数据
Scenario: 前端注入构建版本
- WHEN 执行前端生产构建
- THEN 构建流程 SHALL 注入
VITE_APP_VERSION - AND 该值 SHALL 等于
VERSION中的版本号