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.tsx、ChartContainerImpl.tsx、packages/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 仓库,不在本仓;记在这里是因为后果落在本仓的发布页上。
关联
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。其中两条确实改了已发布包的源码:19716b5bffix(charts): name the slices(objectui#3138)packages/plugin-charts/src/AdvancedChartImpl.tsx、ChartContainerImpl.tsx、packages/plugin-dashboard/src/DatasetWidget.tsx5e7ef1141fix(i18n): resolve qualified view ids(objectui#3132)packages/i18n/src/useObjectLabel.ts两条都是真实的用户可见修复,都没有声明 changeset。
后果
后果不是 #4843 造成的,而是被它照出来的 —— 旧的按
feat|fix类型猜的口径碰巧把这两条收了进去,但那是因为它们的 subject 恰好以fix开头,和它们是否发版无关(同一个口径也把两条 release-nothing 的fix(ci)收了进去)。真正的洞在上游:CHANGELOG.md/ 版本号里没有这两条 —— 它们搭了下一个带 changeset 的发版的顺风车,在任何发布记录里都查不到;bump-objectui.sh写的@objectstack/consolechangeset 里没有;#4843 之后至少它们不再是无声的:每次产物都会打印「N 条提交不带 changeset」,
--all会逐条点名。但出声不等于修好。建议
在 objectui 侧加一道门禁:PR 若改动了
packages/*/src/**且没有新增.changeset/*.md,则失败。空 frontmatter(release-nothing)是合法的显式豁免写法 —— 要的是声明一次,不是强制发版。这与本仓check:changeset-*系列的思路一致:声明即强制,而不是让消费侧去猜。落点在 objectui 仓库,不在本仓;记在这里是因为后果落在本仓的发布页上。
关联
bump-objectui.sh改读声明objectui-range.mjs改读声明,本问题在此实测发现