Skip to content

Commit f07a0a3

Browse files
committed
fix(scripts): digest 的破坏性判据扩到「声明 major 或作者正文标注」(#6099)
`objectui-changeset-digest.mjs` 判定破坏性的唯一依据是声明级别等于 `major`, 而 objectui 在 v17 发布窗内从不声明 `major` —— 实测区间 `f5bc4c78be76..f995a452d2ca` 的 64 条 releasing changeset 里 0 条 `major`, 破坏性一律以 `minor` + 作者正文标注的形式发布。判据因此恒为 0,那句 `⚠️` 提示永远不触发,未标注的破坏性迁移直接流进 `@objectstack/console` 的 CHANGELOG 输入层(#6110 只能手工补标)。 判据改为「声明级 `major` **或** 作者在 changeset 正文里写下的破坏性标注」 (`hasBreakingAnnotation`)。仍然拒绝读提交标题:conventional-commit 的 `!` 是工具对提交的分类,不是作者对发布的陈述,重新引入即是 #4731 删掉的那种 推断。读正文属于「声明」——同一个文件里作者自己的散文。收录集完全不变, 只改标注与计数。 精度靠**位置**而非词形:标注必须出现在强调标记里,或在某个块(段落/标题/ 顶层列表项)的开头;正文中间顺带提到 "breaking" 不算。实测该区间 65 条 changeset 有 5 条提到这个词,判据认出 4 条、放过 1 条(`9e9e9a92f` 的 "technically breaking … but only in the sense that")。刻意按块而非按行锚定: changeset 正文是硬换行的,任何含该词的句子都可能把它甩到行首,但只有作者 自己的分段才会把它放到块首。 连带修正: - `inPreMode` 上那段「objectui marks its breaking symbol renames `major` routinely」的上游模型注释与实测相反(0/64),据实改写;`downgradedMajor` 留作安全网并注明它不是常态路径,破坏性计数不得建立在它之上。 - 条目行按 #6110 手工修正的形状带上标记(`- **minor** — **BREAKING** — …`); 作者自己写的更丰富标签(`**BREAKING (v17)**`)原样保留、绝不复述。标记在 截断之后施加,避免标记本身被 clamp 吃掉。 - `⚠️` 那句不再声称「declare a **major** bump」,改为分别报出按级别与按正文 标注的条数。 self-test 从 19 条断言增至 37 条,新增 minor+正文标注族(首段标注、末段标注、 标题标注三种识别形状;中间提及、否定式/含词词、硬换行行首三种反例)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BDmDsu2575gDxeMCxXhDE3
1 parent f6609e6 commit f07a0a3

1 file changed

Lines changed: 411 additions & 21 deletions

File tree

0 commit comments

Comments
 (0)