Skip to content

README 的 Peer Dependencies 区块只有 12 行有人比对:同区块另外 16 行里 9 行与清单不符(含 components 的 tailwindcss ^3.0.0 vs 清单 ^4.2.1 实错) #3750

Description

@yinlianghui

实施 #3717(把 ledger 的 restatement 从记账升级成断言)时全量普查 packages/NAME/README.mdPeer Dependencies 区块得到的越界发现,据实另立。#3717 的文件面只有 scripts/__tests__/doc-version-claims.test.ts + 只读清单/README,下面这些既要改文档/清单、又要加宽门禁,两头都在界外。

事实(普查于 origin/main = 8ad6070)

28 行「backtick 包名 + 版本区间」的 peer 陈述,只有 12 行是 ledger 登记的 react 行(#3717 的断言正好覆盖这 12 行)。剩下 16 行无人比对,其中 9 行与本包清单不符:

README 声明 清单 peerDependencies 形状
packages/components/README.md 41 tailwindcss ^3.0.0 ^4.2.1 版本失真
packages/auth/README.md 24 react-dom ^18.0.0 || ^19.0.0 未声明 多报 peer
packages/collaboration/README.md 23 同上 未声明 多报 peer
packages/i18n/README.md 24 同上 未声明 多报 peer
packages/mobile/README.md 24 同上 未声明 多报 peer
packages/permissions/README.md 23 同上 未声明 多报 peer
packages/plugin-ai/README.md 22 @object-ui/core(无版本) 未声明 多报 peer
packages/plugin-designer/README.md 28 同上 未声明 多报 peer
packages/plugin-report/README.md 26 同上 未声明 多报 peer

第一行是用户今天就会踩的:照 README 装 tailwindcss 3 的人,拿到的包要求 ^4.2.1。这正是 #3690 的形状(清单动了、README 没跟),而且这次门禁两道都看不见。

那 5 个 react-dom 多报也不是笔误级:auth / collaboration / i18n / mobile / permissionssrc没有任何 react-dom 引用,清单也没声明——README 让读者去装一个这些包不需要的 peer。

为什么两道门禁都漏

  1. 棘轮(doc-version-claims.test.ts 的 KNOWN_CLAIMS)漏 tailwindcss:TOOLCHAIN 里是 Tailwind CSS|Tailwind,而 \bTailwind\btailwindcss 上没有词边界(后面接着 css),所以 - \tailwindcss` ^3.0.0 这行从来没被匹配、也就从来没进 ledger。react-dom 行同理不匹配(\bReact\b命中后 SEP 消化不掉-dom`,VERSION 落空)。
  2. restatement 类只是记账、没有断言:12 条 README 版本重述与自家 package.json 的逐字一致靠人复核(#3710 分诊裁的 B 只落地了一半) #3717 的断言是 ledger 驱动的:它遍历 restatement 条目,条目没有的行自然不判。分诊已预裁「一条规则只判一种事实」,加宽区块超范围,故按「越界即停」记于此。

修法方向(不预判,留给分诊)

两半可以独立推进:

Blocked-by: #3717(仅门禁加宽那半;文档/清单侧不依赖它)

已搜重

tailwindcss README peerpeerDependencies README 清单tailwind version drift docsreact-dom Peer Dependencies README 四组关键字搜过本仓开放 issue,除 #3717#3741(react-runtime 清单侧 >=18 无上界,同族但另一条)外无命中。

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions