Skip to content

建立 .anws/v{N} 开发版本号到用户实际发布版本的映射机制 #8

@moyu12-ae

Description

@moyu12-ae

问题描述

Anws 当前使用 .anws/v{N} 作为内部开发版本号,由 /genesis 自动递增(v1 → v2 → ... → v7)。这个 v{N} 表达的是架构文档的演进代数——每次 /genesis 都会新建一个版本目录。

但在实际使用中,这个内部版本号与用户项目的实际发布版本号(如 1.0.02.3.1)完全脱节,导致以下问题:

  1. 无法追溯:一个 .anws/v{N} 对应用户发布的哪个软件版本?反之亦然——用户发布了 v2.3.1,对应的设计文档在哪个 v{N} 里?目前只能靠人脑记忆
  2. 映射关系不存在:一次 /genesis 产出的文档可能横跨用户多个实际 release,也可能只是架构层面的重构从未对应任何发布——没有数据结构来记录这些关系
  3. CHANGELOG 无法对应06_CHANGELOG.md 记录的是架构/文档层面的变更,与用户面向最终用户的 release notes 无法关联
  4. 团队协作混乱:多人协作时,没有人能快速回答"这个 release 对应的 specs 在哪个 v{N}"

期望方案

建立一个版本映射文件(例如 .anws/version-map.json),让用户可以将内部开发版本号 v{N} 映射到自己项目的实际发布版本号。

数据结构示意

{
  "mappings": [
    {
      "anws_version": "v7",
      "release_version": "2.3.1",
      "description": "多目标 IDE 矩阵扩展",
      "date": "2026-04-01"
    },
    {
      "anws_version": "v6",
      "release_version": "2.2.0",
      "description": "canonical resource model",
      "date": "2026-03-15"
    }
  ],
  "current_anws_version": "v7"
}

核心需求

  • 支持用户自定义映射:将任意 .anws/v{N} 映射到用户项目的 semver 版本号
  • 支持多对一映射(多个架构版本可能对应同一个 release)或一对一映射
  • 提供基本查询能力(通过 CLI 或工作流):给定 release 版本号,查到对应的 v{N},反之亦然
  • 映射文件由用户显式维护,不由 /genesis 自动创建(避免错误假设)
  • 不破坏现有的 Copy & Evolve 版本语义

非目标

  • 不要求 /genesis 自动猜测用户 release 版本号
  • 不要求与 git tag 强制关联

受益场景

  • 团队回溯:查"v2.3.1 发布时的设计文档在哪"
  • 新人上手:快速理解"当前线上版本对应哪份架构文档"
  • 审计/合规:保留设计文档与实际发布之间的可追溯链路

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions