1
0
Files
nex/openspec/specs/repository-versioning/spec.md
lanyuanxiaoyao a9972360c2 feat: 增加版本化构建与发布流程
引入 VERSION 作为统一版本源,避免前端、后端、桌面打包和发布资产之间的版本漂移。
新增 tag 驱动的 Draft Release 流程与版本化资产命名,使本地演进和 GitHub 发布共享同一套约束。
2026-04-28 14:20:27 +08:00

2.5 KiB
Raw Blame History

仓库版本管理

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 执行版本同步流程且 VERSION1.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.3VERSION1.2.3
  • THEN 发布校验 SHALL 通过

Scenario: tag 与 VERSION 不一致

  • WHEN 发布使用的 Git tag 为 v1.2.4VERSION1.2.3
  • THEN 发布校验 SHALL 失败
  • AND 系统 SHALL 阻止后续发布步骤继续执行

Requirement: 统一构建版本注入

系统 SHALL 在构建阶段把统一版本信息注入 frontend、server 和 desktop而不是在运行时依赖外部发布平台查询版本。

Scenario: Go 二进制注入版本元数据

  • WHEN 构建 server 或 desktop 二进制
  • THEN 构建流程 SHALL 注入 versioncommitbuildTime 元数据

Scenario: 前端注入构建版本

  • WHEN 执行前端生产构建
  • THEN 构建流程 SHALL 注入 VITE_APP_VERSION
  • AND 该值 SHALL 等于 VERSION 中的版本号