Repository navigation
feat: snapshot every plugin API sub-path - #645
Conversation
|
Review of 5464577. Mechanics are right. All 88 Blocking (to decide): each plugin report repeats the core surface. What follows from that:
#595 called this "a dependency and repository-size decision of its own". The PR body doesn't mention the size. A suggestion: post-process each plugin report so it drops the declaration blocks identical to a block in a core report generated in the same run. A core change then moves the core report only, and both copies of an inlined type stay equal. A plugin type that shares a core name but has a different shape is kept. Nits:
|
5464577 to
c5405a6
Compare
|
Le point bloquant est traité dans Déduplication Résultat :
Une modification de Nits
|
|
Re-review of c5405a6: the blocking point is fixed. Two non-blocking points:
|
`etc/api/` only pinned the five main entry points, so a change to a `./plugin-*` type was still reviewed by hand. The entries now come from `package.json` exports, and the reports for every plugin are committed. Each plugin report drops the declaration blocks it shares verbatim with a core report: the core report already gates those, and repeating them would rewrite every plugin report on a core option change. The 88 plugin reports take 632 KiB in total instead of 3.2 MiB. API Extractor's report-copied and report-created warnings are ignored, since the stale check compares the stripped files themselves. Two tests pin the stripping: an identical block goes, another shape of a core name stays. Refs #595.
c5405a6 to
e117dc5
Compare
|
Les deux points sont corrigés dans 1. Plus d’avertissements à chaque rapport plugin. 2. Tests de
|
|
Re-review of e117dc5: verified, nothing left to change.
Note, no change needed: the filter applies to the core reports too, so |
Part of #595.
The
etc/api/reports only covered the five main entry points, so a change to a./plugin-*type was still reviewed by hand. This adds one report per plugin sub-path.Reports
API_ENTRIESnow reads the./plugin-*entries frompackage.jsonexports, so a new plugin is reported without another list to update.etc/api/, next to the five main ones (93 total).npm run check:apiregenerates and compares them; it takes about 35 seconds on this tree.The
contractsgate already compares every listed report with the base, so a removed plugin declaration is non-additive there, and a changed one is printed for review. The limitation on telling an added optional member from a narrowed union is unchanged and still documented.docs/development/contracts.mddescribes the plugin reports and drops the “66 plugin entries come later” note.Verification:
npm run checkpasses;test/scripts/apiSnapshot.test.tspasses (9 tests).Refs #595.