Skip to content

publish-smoke 的 tarball 钉表按 @objectstack/* 作用域构造,漏掉无作用域的 create-objectstack——17.2.0 候选烟测假红,钉表应从可发布集派生 #11253

Description

@os-zhuang

维护者 2026-08-23 裁决(发版现场,原文):「A:先修烟测再发(推荐)」。skills 席 session 757f0dc0-5dae-51d7-9053-c15c57ebfe3b 立卡即派发。本卡阻塞 17.2.0 发版,最高优先。

实测(run 32622283383,job Packed-tarball smoke (release candidate))

[ERR_PNPM_NO_MATCHING_VERSION] No matching version found for create-objectstack@17.2.0
This error happened while installing the dependencies of @objectstack/cli@17.2.0
The latest release of create-objectstack is "17.1.0".

三个已核事实:

  1. 钉表按作用域构造(publish-smoke.yml:17 自述「@objectstack/* to the tarballs via the project's own pnpm [overrides]」)——无作用域create-objectstack 不被打包/钉住,pnpm 对它落回 registry,17.2.0 未发布 → 必红(鸡生蛋)。
  2. 该依赖是本轮新增:npm 上 @objectstack/cli@17.1.0 的 dependencies create-objectstack(registry 实测),所以既往发版烟测从未踩到。
  3. 候选本身健康:create-objectstack 在 69 包 fixed 组、private:false,17.2.0 与 cli 同批发布——这是烟测盲区,非发布缺陷。

修法

scripts/publish-smoke-pack.mjs(+ 必要时 scripts/publish-smoke.sh / publish-smoke.yml):tarball 打包集与 override 钉表从可发布集派生——workspace 成员 ∧ private:false(或等价地从 .changeset/config.json 的 fixed 组读,择一并论证哪个是真源头),⛔ 不再用 @objectstack/* 作用域过滤,⛔ 不加手写名单——下一个无作用域包不得重蹈。派生处加断言:钉表集合 ≡ 可发布集(双向),缺一员即红并点名。

验证要求

  • 本地复现先行:在 17.2.0 候选树上跑现钉表构造,证明 create-objectstack 缺席;修后同一构造包含它,并且本地跑通烟测安装段(pack 全集 + 脚手架安装,能跑多远跑多远,跑不动的部分说明并留给 CI);
  • 若脚本带 self-test,扩自测钉住「无作用域包在集合内」与「集合≡可发布集」两个方向;
  • dispatch-gates 派生并跑全族;check-governed-merges --test 判落地类(scripts/** + workflows 预期普通面);changeset 按门的处方(scripts-only 预期 skip-changeset);
  • PR 正文附:失败 run 链接、修前/修后钉表集合差、以及给发版现场的一句话——合并后如何再触发一轮烟测拿真绿(读 publish-smoke.yml 的触发器写清楚)。

时序

本卡合并 → 重跑烟测真绿 → 维护者合 #10183(17.2.0)→ 批准 release 环境。#10183 无需重刷(本卡 scripts-only,不进发布集)。

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions