Skip to content

objectui-range 的 release 页 Console 段按声明级别分节,### Breaking changes 在发布窗内结构性永不渲染(#6099 的同源另一半) #6294

Description

@hotlong

未认领。#6099 / PR #6289 的工作中如实撞到,不属于该单范围(那单的文件面被分诊钉死为 scripts/objectui-changeset-digest.mjs),按纪律只报不改。

现象

scripts/objectui-range.mjs(#4843,release 页 Console 段的渲染器)按声明级别分节:

// scripts/objectui-range.mjs
const SECTIONS = [
  ['major', 'Breaking changes'],
  ['minor', 'Features'],
  ['patch', 'Fixes'],
];

这与 #6099 修掉的是同一个错位:objectui 在发布窗内从不声明 major(破坏性一律 minor + 作者正文标注)。于是 ### Breaking changes 这一节结构性永不渲染,而真正的破坏性条目被归进 ### Features

实测(区间 f5bc4c78be76...f995a452d2ca,与 #6099 同一现场)

$ node scripts/objectui-range.mjs --objectui-root ../objectui \
      --from f5bc4c78be76 --to f995a452d2ca | grep '^###'
### Features
### Fixes

64 条 releasing changeset、0 条 major,所以只出来两节。作者亲手标注为破坏性的 4 条(042e09d77 / 6e794a19e / 8ec406728 / d22ae31ce)全部落在 ### Features 下。

#6099 的关系:同源,但不同消费者、不同文件

#6099 处理的是 digest 生成 changeset 时那句 ⚠️ 提示;这一条是 release 页的分节。两者共用 classifyRange,但错位各出现一次。#6099 的 body 里本来就点了「#4843 —— 同一判据的另一个消费者(release 页 Console 段)」,这是把那半句坐实。

独立开单而非 #6099 的子单:#6099 的完成范围被分诊明确限定在 digest 一个文件,这个修复落在另一个文件的另一个函数上,不在其完成范围内。

修复面已经就位(PR #6289 之后)

PR #6289 把破坏性判据放进了 classifyRange —— 也就是 objectui-range.mjs 正在调用的那个共享实现 —— 每个 releasing 条目现在都带:

r.breaking       // boolean:声明 major 或作者正文标注
r.breakingSource // 'declared-major' | 'annotation' | null

objectui-range.mjs 目前不读这两个字段。所以修复大概是:分节改为先按 r.breaking 抽出 Breaking changes 一节,余下再按级别分 Features / Fixes。判据不必重写,只是消费端接上——这正是 #6289 把判据放进共享实现而不是放进 buildDigest 的原因。

两种读法(留给分诊定级,不自打级别标签)

#4949「立案时判定的严重度两个方向都不可靠」的原则如实记两读法。

关联

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions