Skip to content

objectui 可以在改动已发布包源码的同时不带 changeset —— 这些修复不会出现在任何发布记录里 #4904

Description

@xuyushun441-sys

Blocked-by: objectstack-ai/objectui#3387

未认领。#4843(objectui-range.mjs 改读 objectui 声明的 changeset)时实测发现的邻近问题,不在那条 PR 的范围内,另立。

现状

#4731 / #4843 把「哪些前端改动发版」的判据统一成读 objectui 自己声明的 .changeset/*.md。这个判据的正确性完全依赖一个前提:改了已发布包的源码,就必须带 changeset。 objectui 侧目前没有门禁保证这一点。

在实测区间 7d9734d5e321..785b8a5d432c(53 个非 merge 提交)里,有 7 条提交完全没有 changeset。其中两条确实改了已发布包的源码:

objectui 提交 改动
19716b5bf fix(charts): name the slices (objectui#3138) packages/plugin-charts/src/AdvancedChartImpl.tsxChartContainerImpl.tsxpackages/plugin-dashboard/src/DatasetWidget.tsx
5e7ef1141 fix(i18n): resolve qualified view ids (objectui#3132) packages/i18n/src/useObjectLabel.ts

两条都是真实的用户可见修复,都没有声明 changeset。

后果

后果不是 #4843 造成的,而是被它照出来的 —— 旧的按 feat|fix 类型猜的口径碰巧把这两条收了进去,但那是因为它们的 subject 恰好以 fix 开头,和它们是否发版无关(同一个口径也把两条 release-nothing 的 fix(ci) 收了进去)。真正的洞在上游:

  • objectui 自己的 CHANGELOG.md / 版本号里没有这两条 —— 它们搭了下一个带 changeset 的发版的顺风车,在任何发布记录里都查不到;
  • 平台侧 bump-objectui.sh 写的 @objectstack/console changeset 里没有;
  • 发布页 Console 段落里没有。

#4843 之后至少它们不再是无声的:每次产物都会打印「N 条提交不带 changeset」,--all 会逐条点名。但出声不等于修好

建议

在 objectui 侧加一道门禁:PR 若改动了 packages/*/src/** 且没有新增 .changeset/*.md,则失败。空 frontmatter(release-nothing)是合法的显式豁免写法 —— 要的是声明一次,不是强制发版。这与本仓 check:changeset-* 系列的思路一致:声明即强制,而不是让消费侧去猜。

落点在 objectui 仓库,不在本仓;记在这里是因为后果落在本仓的发布页上。

关联

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions