Skip to content

发版状态对账:main 的 fixed 组版本(rc.2)落后 npm 已发布的 rc.3 —— 版本 PR 因此计算出已占用的版本号,直合会静默丢失一次发布 #6135

Closed

Description

@baozhoutao

发现于 v17.0.0-rc.4 切版执行(identity PM 会话 session_01JwwiU9bjhwy2SWj13ho8uv,2026-08-07 03:1xZ),维护者已批 A 案修复。

三方不一致(一手核实)

位置 状态
npm 全 fixed 组 rc dist-tag = 17.0.0-rc.3(2026-08-03T16:42Z 发布;spec 与 plugin-auth 抽查一致);rc.3 git tag 已推(138 个),@objectstack/spec@17.0.0-rc.3 指向 c6a52d3a4 —— 不在 main 祖先里
main packages/spec/package.json 等 = 17.0.0-rc.2;main 全史零「version packages」合并(rc.0–rc.3 四个版本均如此)
版本 PR #4935 changeset version 从 main(rc.2)出发计算出 rc.3 —— 撞 npm 已占用版本号,且分支内容 ≠ npm rc.3 的实际内容(npm rc.3 是 08-03 的旧内容)

后果

现在合并 #4935 ≠ 发布 rc.4:changeset publish 会因版本已在 registry 而逐包跳过(release.yml 注释自证此语义),main 却把本周全部 changeset 标记为已随 rc.3 发布 —— 一次发布被静默吞掉;recover 步骤不救(它只查 main 版本是否在 npm,而 rc.3 在)。

修复(A 案,维护者已批)

机械对账 PR:把 workspace 各 package.json 的 version 字段改成与 2026-08-03 实际发布一致(事实源 = 当日原子推送的 git tag 集,公共包与 npm 交叉抽查),不消费/不触碰任何 .changeset/* 文件,不动 workspace:* 依赖。合并后 changesets action 自动把 #4935 刷新为 rc.4,再走正常合并发布。

验收:对账合并后,changeset version 干跑计算出的 spec 版本 = 17.0.0-rc.4;.changeset/ 目录 diff 为零;lockfile 无实质变更。

待维护者另行确认(不阻塞本单)

rc.0–rc.3 连续四版均从分支发布、版本合并未落 main —— 若非有意惯例,发布流程本身需要一张 devx 单排查(为什么版本 PR 从未被合并、发布是从哪个状态跑的)。

Activity

  1. self-assigned this
    on Aug 7, 2026
  2. added
    toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    on Aug 7, 2026
  3. baozhoutao commented on Aug 7, 2026

    @baozhoutao
    ContributorAuthor

    认领(identity 车道 PM 代维护者执行发版链,session_01JwwiU9bjhwy2SWj13ho8uv,2026-08-07 04:0xZ,维护者会话内批准 A 案)

    • 分支:claude/issue-6135-version-catchup;worktree:../objectstack-issue-6135
    • 文件面:workspace 各 package.json 的 version 字段仅此一处;⛔ 不触 .changeset/**(含 pre.json)、不动 workspace:* 依赖、不动 lockfile 实质内容
    • 本单为发版工程对账,跨域执行依据 = 维护者当面委托;派发前定向 in-flight 检查:当前全仓无在飞分支触及 package.json version 字段(版本 PR chore: version packages (rc) #4935 除外,其为 action 自管分支,不冲突)

    Generated by Claude Code

  4. baozhoutao commented on Aug 7, 2026

    @baozhoutao
    ContributorAuthor

    ACCEPT(identity PM,session_01JwwiU9bjhwy2SWj13ho8uv,04:0xZ)—— PR #6149。

    审查依据:diff 机械签名完美(68 文件 / +68 −68,恰好每文件一行,删除侧唯一值 "17.0.0-rc.2"、新增侧唯一值 "17.0.0-rc.3");双事实源互证(69 tag ⟷ 发布提交 c6a52d3a4 整树 package.json 零例外);JSON 往返断言结构性排除其他字段变动;.changeset/** 零变更;lockfile 零变更;rc.4 干跑双向证明(对账前复现 rc.3 撞车,对账后 68/68 算出 17.0.0-rc.4,driver-turso 经 fixed 组同扫无裂缝);npm 交叉验证 10/10,rc.4 全族 E404 未占用;发布相关五门禁全 PASS。

    子决策裁定(open question):取 A —— 7 个私有 rc 系包不动。理由同 dev 与 driver-turso 一致:不为从未发布的版本记账;私有包无 registry 占用面,本单要修的故障与它们无关;B 案 7 行随时可补,维护者若偏好 workspace 与发布提交逐字节一致,PR 正文第九节留有一句话开关。

    诚实修正记录:验收表述「示例包同族递增」被 dev 实测证伪(私有包不在 fixed 组,正确行为即不进 rc.4 档)——如实回报而非硬凑,加分。唯一红 check 为 skip-changeset 标签竞态(#5542/#5580 已档),update-branch 的 synchronize 即清。

    处置:ready + update-branch + auto-merge,入队即走。落地后:确认 #4935 刷新为 rc.4 → 送队 → Release workflow → npm 确认 → #5810 发布确认。


    Generated by Claude Code

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

Metadata

Metadata

Assignees

Labels

pm:dispatchedDispatched to a dev agent by /pm-dispatchtoolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions