Skip to content

EPBDS-16211 F1 step 5: record the bundle delta, close the step (release deferred) - #47

Merged
AlexSamBY merged 1 commit into
masterfrom
f1-step5-close
Sep 15, 2026
Merged

AlexSamBY merged 1 commit into
masterfrom
f1-step5-close

Conversation

@AlexSamBY

Copy link
Copy Markdown
Member

Closes §9.7-F1 step 5 — except the release itself, which is deliberately deferred.

The bundle delta, measured — the estimate it replaces was low by 6.7×

Step 5 asked to "record the bundle delta (−30 KB+ per the source's own estimates: 27 KB Dropdown + 4 KB Table + Popup)". Those came from comments in the source and had never been checked. Measured by building the library at c754daf5 — the commit before step 1, where all three components still wrapped SUIR — and comparing with master:

artifact before after saved gzip saved
dist/index.js 436,690 333,529 103,161 (−23.6%) 33,486
static/all.css 407,288 307,785 99,503 (−24.4%) 10,316
total 843,978 641,314 202,664 (−24.0%) 43,802

The estimate counted only the JS weight of three components and had no CSS term at all — half the saving is stylesheet. The gzip column is the one that describes a page load: ~44 KB less transferred, every time.

The baseline build also demonstrated what the exit removed, by failing: a clean npm ci at that commit could not build until theme.config was copied into node_modules/semantic-ui-less/ by hand.

The documentation half — brought true, not merely finished

Three changelog statements were wrong, two of them written during this workstream:

  • that the Semantic styles are still loaded — they were vendored at step 4, and the claim contradicted an entry 25 lines above it;
  • that the tooltip "has been in-house for two releases" — it has shipped in none; git tag --contains is empty for that commit;
  • stale tarball figures (295 files / 7.25 MB → now 299 / 6.7 MB / 2.5 MB packed).

Two tooltip facts were missing and are added: the object-tooltip passthrough narrowing from 45 names to 13, and the WCAG SC 1.4.13 non-conformance stated plainly rather than left to be discovered.

docs/SUPPORTED-PROPS.md still carried a "Step 3 — Dropdown" block of unmet obligations that the same page discharges, and a live "forwarded to semantic-ui-react" outcome with its tier vocabulary. Corrected at the source, since the page is generated.

The step-5 gate was unsatisfiable, and is fixed rather than ticked

Appendix B's second grep matched our own prose comments and the legitimate imports of the vendored CSS — it could never return nothing. Replaced by three commands that express the actual invariant: no semantic-ui-react import, no LESS import reaching either package, neither package in the manifest. All three return nothing.

Also

16 Appendix C boxes ticked with what discharged them; R2 and R16 retired; §2.6-7 ("published CSS leaks global styles") and both engines >=22 claims corrected to what the manifest says; §10 rows 5a/5b marked — with 5b noting that "own the 5 LESS modules" is not what happened, since three were measured unused and deleted.

Consumer reachability, added because a MINOR that removes published props has to be actionable: docs/SUPPORTED-PROPS.md and docs/SUPPORTED-VIEWS.md now ship in the tarball, and the manifest gained repository and bugs.

Deferred and still open

  • The release. Neither act is taken here. master still carries React 17+18 and the whole F1 exit unreleased, and ### Unreleased is accurate.
  • Not step 5: the §9.8 LESS-pin re-evaluation (trigger was "right after step 4", now due), and watch-lib's divergence from the published build.

Gates

jsdom 167 suites / 2540 tests / 38 snapshots; lint:js, lint:css, css:fixture:check, both docs checks, build-lib and sync-version --check green; published CSS still byte-identical (dcdb0a40…).

🤖 Generated with Claude Code

…se deferred)

THE BUNDLE DELTA — MEASURED, and the estimate it replaces was low by 6.7×. Step
5 asked to "record the bundle delta (−30 KB+ per the source's own estimates:
27 KB Dropdown + 4 KB Table + Popup)". Those came from comments and had never
been checked. Measured by building the library at c754daf — the commit before
step 1, where all three components still wrapped SUIR — and comparing:

  dist/index.js    436,690 -> 333,529   -103,161  (-23.6%)   gzip -33,486
  static/all.css   407,288 -> 307,785    -99,503  (-24.4%)   gzip -10,316
  TOTAL            843,978 -> 641,314   -202,664  (-24.0%)   gzip -43,802

The estimate counted only the JS weight of three components and had no CSS term
at all; half the saving is stylesheet. The gzip column is the one that describes
a page load: ~44 KB less transferred, every time.

The baseline build also demonstrated what the exit removed, by failing: a clean
`npm ci` at that commit could not build until `theme.config` was copied into
`node_modules/semantic-ui-less/` by hand.

THE DOCUMENTATION HALF — brought TRUE, not merely finished. Three changelog
statements were wrong, two of them written during this workstream:
  - that the Semantic *styles* are still loaded — they were vendored at step 4,
    and the claim contradicted an entry 25 lines above it;
  - that the tooltip "has been in-house for two releases" — it has shipped in
    NONE. `git tag --contains` is empty for that commit;
  - stale tarball figures (295 files / 7.25 MB; now 299 / 6.7 MB / 2.5 MB packed).
Two tooltip facts were missing and are added: the object-`tooltip` passthrough
narrowing from 45 names to 13, and the WCAG SC 1.4.13 non-conformance stated
plainly rather than left to be discovered.

`docs/SUPPORTED-PROPS.md` still carried a "Step 3 — Dropdown" block of unmet
obligations that the same page discharges, and a live "forwarded to
semantic-ui-react" outcome with its tier vocabulary. Corrected at the source,
since the page is generated; the tiers are retired with an explanation of what
they encoded and why it no longer applies.

THE STEP-5 GATE WAS UNSATISFIABLE AS WRITTEN and is fixed rather than ticked:
Appendix B's second grep matched our own prose comments and the legitimate
imports of the vendored CSS, so it could never return nothing. Replaced by three
commands that express the actual invariant — no `semantic-ui-react` import, no
LESS import reaching either package, neither package in the manifest. All three
return nothing.

ALSO: 16 Appendix C boxes ticked with what discharged them; R2 and R16 retired;
§2.6-7 (published CSS leaks) and both `engines >=22` claims corrected to what
the manifest actually says; §10 rows 5a/5b marked, with 5b noting that "own the
5 LESS modules" is not what happened — three were measured unused and deleted.

CONSUMER REACHABILITY, added because a MINOR that removes published props has to
be actionable: `docs/SUPPORTED-PROPS.md` and `docs/SUPPORTED-VIEWS.md` now ship
IN the tarball, and the manifest gained `repository` and `bugs`.

DEFERRED DELIBERATELY: the release itself. Neither `npm publish` nor
`npm run build && npm run deploy` is taken here — master still carries React
17+18 and the whole F1 exit unreleased, and `### Unreleased` is accurate.

NOT step 5 and still open: the §9.8 LESS-pin re-evaluation (its trigger was
"right after step 4"), and `watch-lib`'s divergence from the published build.

Gates: jsdom 167 suites / 2540 tests / 38 snapshots; `lint:js`, `lint:css`,
`css:fixture:check`, both docs checks, `build-lib` and `sync-version --check`
green; published CSS still byte-identical (dcdb0a40…).
@AlexSamBY
AlexSamBY merged commit f7567ec into master Sep 15, 2026
5 checks passed
@AlexSamBY
AlexSamBY deleted the f1-step5-close branch September 15, 2026 12:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant