Skip to content

观察记录:release-metadata 发布期生成器已死(两仓零引用),PR #3688 删掉最后痕迹后该机制在全仓归零 —— 若重建须取真值而非入散文 #3692

Description

@yinlianghui

观察类记录,非当前用户会踩到的缺陷,不入 pm:queue。记录于 #3645 / PR #3688 期间,把测量留档以免后来者重新发明这台漂移机器。

测量(对 origin/main 复核,切点 9961df297)

标记行 release-metadata:v3.3.0(HTML 注释形式)曾由某个发布期生成器写入 35 个包 README,在每个 README 末尾生成一段 §Compatibility 块。该生成器已不存在:

# objectui
$ git grep -l "release-metadata"
→ 仅命中 35 个 packages/*/README.md 自身
→ scripts/ 、.github/ 、其余全仓:零引用

# objectstack
$ git grep -l "release-metadata"
→ 全仓零命中

即:没有任何工具会再生成、覆盖或校验这个块。

一条正交证据:标记与它界定的块已经解耦

packages/app-shell/README.md 的标记行孤悬在第 616 行,而它本该界定的 §Compatibility 在第 774 行 —— 相隔 158 行,中间被后来的编辑插进了 ## Command palette (⌘K) 等整章内容。

一个活着的生成器要么重新锚定标记、要么整块覆盖,不会容忍标记漂到离目标 158 行之外。这是"生成器已死"独立于 git grep 的第二个证据。

同族证据还有两条,都说明这块早已退化成手工文本:

  • packages/types/README.md 的 spec 行被手改成过 ^15.1.1(其余 34 个是 ^3.3.0)—— 即「35 个逐字相同」并不成立;
  • packages/cli/README.md完整的同款 §Compatibility 块但没有标记行,且标点风格不同(- **Node.js** ≥ 18 而非 - **Node.js:** ≥ 18)—— 像是更早一版生成器的产物,或手抄。

冻结代价(已由 PR #3688 清除)

块被冻结在 v3.3.0,仓库走到了 17.x,于是六行全部失真 —— 不止 #3645 正文指出的两行:

README 宣称 实际
@objectstack/spec ^3.3.0 27 个包锁 ^17.0.0-rc.5,零个锁 ^3.3.0
@objectstack/client ^3.3.0 全仓只有 data-objectstack 一个包依赖它(其余是幽灵行)
Node.js ≥ 18 engines.node">=22"
TypeScript ≥ 5.0 全仓 39 处声明均为 ^6.0.3
Tailwind CSS ≥ 3.4 实为 ^4.3.3 / ^4.2.1
React 18.x or 19.x peerDependencies 手抄不同步(见 #3690)

给未来的约束(本记录的要点)

PR #3688 删掉最后痕迹后,release-metadata 在 objectui 全仓命中归零。若将来要重建发布期元数据注入,请遵守本次得到的两条:

  1. 取真值,不入散文。 版本号写进 README 正文的那一刻就保证了漂移 —— 这块用六行、跨十几个大版本证明了一次。要么从 package.json(engines / peerDependencies / dependencies)在发布时取值生成,要么根本不写,让读者去看 npm 页上的 enginespeerDependencies(包管理器会在安装期强制它们,散文不会)。
  2. 逐包裁剪,不要全包统一模板。 上一版给 35 个包都印了 @objectstack/client,而实际只有 1 个包依赖它;Tailwind CSS ≥ 3.4 (for packages with UI) 里那个括号,本身就是模板在承认自己不逐包为真。

关联


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions