Skip to content

ADR-0130 D4:产物 schema 增加可选 packages[] 列表,两种形态都读,分段加载键位结构性预留 #14161

Description

@os-sam

实现 ADR-0130(docs/adr/0130-release-artifact-as-co-ownership-boundary.md)D4,epic #14122 实现面第 1 行——本卡是全链的先行卡,行 2/3/4 均依赖它。

要求(单源在 ADR-0130 D4,此处只列判据)

  1. ObjectStackDefinitionSchema(packages/spec/src/stack.zod.ts:240 一带)新增可选 packages: [...] 键;manifest(单数)保留
  2. 读取语义:有 packages 则遍历;无则把 manifest 当单元素列表——schema 形状本身就是兼容机制,⛔ 不是替换。
  3. 分段加载键位结构性预留:packages[] 元素恒为对象,永不是拍平内联的 manifest 体——未来 {ref, integrity} 外部分段是加键不是改形。⛔ 不实现分段本体(ADR-0130 Non-goals)。
  4. 前向兼容走既有 manifest.engines.protocol(ADR-0025),⛔ 不引入新版本协商机制。
  5. os compile/os build 写出侧(packages/cli/src/commands/compile.ts:271 解析、:596 写出)对齐 schema;编译产物默认行为不变(单包工程照旧写 manifest)。

Clause-②

packages/spec/src/** 命中路径肢;公共面扩宽(新增可选键)属实 ⇒ 自报 yes,挂 needs:contract-review,PR 恒 draft 待复审。

验收

  • 存量单 manifest 产物 parse 结果逐位不变;
  • 新增键为可选,现有产物与调用方零改动通过全部既有测试;
  • 换档:minor(扩宽零收窄,无 BREAKING 横幅)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions