#257 (README の依存表が実態とずれている) を直したときの再発防止。#257 は手作業で直したが、原因が構造的なので同じずれが必ず再発する。
原因
monaco 0.55 → 0.56 は bee5e1a (#206、dependabot の production-dependencies グループ PR) で入った。dependabot は package.json を書き換えるが README には触らない。 人間が毎回追従する運用は維持できない。
実際 #257 の修正時点で、指摘された monaco 以外に次のずれが残っていた:
packages/editor/README.md の vite ^8.0 (実態 ^8.1.5)
packages/verify/README.md の vite ^8.0 (同上)
dompurify / marked が editor の依存表から行ごと欠落
現状の自動化
.github/workflows/freshness.yml の検査は 2 項目のみ:
- Markdown の相対リンク切れ (
:44-80)
npm outdated の要約 (:82-)
「README 依存表 vs package.json」の検査は無い。
対応案
freshness.yml に検査ステップを追加する (node インラインスクリプト ~40 行)。各 packages/*/README.md の依存表をパースし、対応する package.json の dependencies / devDependencies と突き合わせて、(a) バージョンのずれ、(b) 表に無い runtime dependency、を報告する。
先に決める必要があること
表記規則が現状バラついているので、そのままだと誤検知だらけになる:
- 大半の行は patch 桁を落としている (
^3.10 ← ^3.10.1)
- ところが vite だけ minor を落として
^8.0 (実態 ^8.1.5) と書かれていた
規則を「package.json の値をそのまま書く」に統一するのが最も単純で、検査も完全一致で済む。表が少し冗長になるのと引き換えに、機械で強制できる。
あわせて検討: freshness.yml の既知の粗
同じワークフローを読んだときに気づいた点 (別 PR でよい):
npm outdated の件数に latest が current より古いパッケージが算入される。@types/diff (current 8.0.0 / latest 7.0.2) と @types/jszip (3.4.1 / 3.4.0) が「古い依存 21 件」に数えられている。major 表からは isMajorBehind で正しく除外されているが、総数には残る
- 依存の古さの報告は
.github/dependabot.yml (monthly・grouped・上限 5 PR) と役割が重複している。リンク切れ検査と major 到来の通知に絞るほうが Issue のノイズが減るかもしれない
関連
#257 (README の依存表が実態とずれている) を直したときの再発防止。#257 は手作業で直したが、原因が構造的なので同じずれが必ず再発する。
原因
monaco 0.55 → 0.56 は
bee5e1a(#206、dependabot の production-dependencies グループ PR) で入った。dependabot はpackage.jsonを書き換えるが README には触らない。 人間が毎回追従する運用は維持できない。実際 #257 の修正時点で、指摘された monaco 以外に次のずれが残っていた:
packages/editor/README.mdの vite^8.0(実態^8.1.5)packages/verify/README.mdの vite^8.0(同上)dompurify/markedが editor の依存表から行ごと欠落現状の自動化
.github/workflows/freshness.ymlの検査は 2 項目のみ::44-80)npm outdatedの要約 (:82-)「README 依存表 vs package.json」の検査は無い。
対応案
freshness.ymlに検査ステップを追加する (node インラインスクリプト ~40 行)。各packages/*/README.mdの依存表をパースし、対応するpackage.jsonのdependencies/devDependenciesと突き合わせて、(a) バージョンのずれ、(b) 表に無い runtime dependency、を報告する。先に決める必要があること
表記規則が現状バラついているので、そのままだと誤検知だらけになる:
^3.10←^3.10.1)^8.0(実態^8.1.5) と書かれていた規則を「
package.jsonの値をそのまま書く」に統一するのが最も単純で、検査も完全一致で済む。表が少し冗長になるのと引き換えに、機械で強制できる。あわせて検討: freshness.yml の既知の粗
同じワークフローを読んだときに気づいた点 (別 PR でよい):
npm outdatedの件数に latest が current より古いパッケージが算入される。@types/diff(current 8.0.0 / latest 7.0.2) と@types/jszip(3.4.1 / 3.4.0) が「古い依存 21 件」に数えられている。major 表からはisMajorBehindで正しく除外されているが、総数には残る.github/dependabot.yml(monthly・grouped・上限 5 PR) と役割が重複している。リンク切れ検査と major 到来の通知に絞るほうが Issue のノイズが減るかもしれない関連