Skip to content

[finding] digest 的排序注释写「Breaking first, then by declared level」,但其 sort 只按声明级别排 —— #6289 扩判据后该句不再为真 #6400

Description

@hotlong

#6294 的 dev 在施工中量到并按「拿不准只记不立」交回 PM;PM 判定值得留档,故代为立单(不认领,交分诊定级)。

观察

scripts/objectui-changeset-digest.mjs:542-543(行号按内容复核)的注释写:

Breaking first, then by declared level

但紧随其后的 sort 只按 order[a.level] 排序。

#6289(关 #6099)把 breaking 的判据从「声明了 major」扩成「声明 major 作者在正文里的破坏性标注」之后,annotation 来源的 minor 条目并不会排在最前 —— 它按 minor 的级别位次落在中间。于是该注释描述的是判据扩展之前的行为。

为什么仍归为观察类(而不是缺陷)

为什么仍值得留档(而不是不记)

本仓对「声明与实现不符」这一类是一贯在意的,而这恰是它最廉价的形态:一句注释在同族三棒(#6099/PR #6289#6175/PR #6335#6174/PR #6358#6294/PR #6392)连续改动之后成了陈旧的自述。下一个读该文件的人会按注释理解排序契约,而它已经不成立。两条处置方向都很便宜,由分诊/实现者选:

  1. 改注释,让它陈述实际排序(纯级别序),并说明破坏性的可见性由 **BREAKING** 标记而非位次承载;
  2. 改实现,让排序真的把 breaking 提到最前(此时注释即为真)。⚠️ 若选此路,须核实这会不会改变已发布 console changeset 的行文顺序、以及 objectui-range.mjs 侧的节序(objectui-range 的 release 页 Console 段按声明级别分节,### Breaking changes 在发布窗内结构性永不渲染(#6099 的同源另一半) #6294/PR fix(scripts): release 页 Console 段改按破坏性判据分节,Breaking changes 不再结构性永不渲染 (#6294) #6392 刚把首节判据改为 r.breaking,两者需一致)。

边界

⛔ 该文件是 #6099 家族的判据面,#6294 的派单明令其 dev 不得触碰,故未在那单顺手改 —— 记录于此是正确处置,不是遗漏。

相关:#6099 / PR #6289(判据扩展的出处)、#6294 / PR #6392(消费侧按 r.breaking 分节)、#6175 / PR #6335#6174 / PR #6358(同文件同日的另两棒)、#4731(declaration-over-inference 的原则出处)。

未认领,交分诊定级。


Generated by Claude Code

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