Skip to content

The next make publish does not fit on GitHub Pages: D5 adds ~184 MB and takes site/ to ~1.05 GB #82

Description

@ChelseaKR

The measurement

ADR 0005 (#59, merged as #79) puts a teacher-assignment section on every school
page. site/ was not republished in that PR — that is a step you run — so the
committed tree is still the pre-D5 one and every gate is green. The next
make publish, though, does not fit on GitHub Pages.

Measured today on this machine against the real acquired files, not estimated.
120 schools (every 88th published school page, both languages, 240 pages) were
rendered twice from data/raw/, once with --assignments data/raw/tamo2324.txt
and once without, and the two trees compared:

bytes per page
without D5 40,121 average
with D5 48,844 average
delta +8,723 average (min 8,255, median 8,705, max 9,376)

The spread is narrow because the section is fifteen measures in three tables on
every page, whether the state published the school's figures, withheld them, or
never listed the school at all. So the delta lands on all 21,068 school pages,
not on a subset.

The sample is representative: the rebuilt no-D5 page for 01100170106906 is
39,828 bytes against the 39,859 bytes committed for it in site/ (the 31-byte
difference is the shorter --site-url used for the measurement).

What it comes to

site/ today                    867,639,523 bytes  (23,310 files)   86.8% of 1 GB
+ D5 on 21,068 school pages   +183,776,000 bytes  (+8,723 x 21,068)
= next make publish           1,051,000,000 bytes                 105% of 1 GB

At the smallest per-page delta in the sample it is still 1,041 MB. There is no
reading of the sample under which it fits.

GitHub documents 1 GB as the maximum size of a published Pages site. Over it,
the deploy is refused: make publish succeeds, the diff reviews clean, ci is
green, and families keep receiving the tree that was last accepted — which by
then is a site with no teaching-assignment section, published from a repository
whose documents all say it has one.

The decision

This is yours, and it is between:

  1. Cut over to the S3 + CloudFront origin prepared in deploy: a hosting path the 1 GB cap does not decide, prepared not applied #80 before the next
    republish. That path has no total-size ceiling, and the cutover leaves
    GitHub Pages receiving every commit throughout, so the rollback stays one
    DNS record. Steps and checks are in deploy/site/README.md; nothing in this
    repository applies any of them.
  2. Republish without --assignments and leave D5 in the artifacts only.
    That contradicts ADR 0005 and the documents feat: publish D5 teacher-assignment monitoring on the school pages (#59) #79 rewrote, so it would need
    its own record.
  3. Take something off the school page to pay for the section. 184 MB is
    more than county/ and district/ put together (19.5 MB), so what is on the
    table is a whole existing section, not trimming.

What already catches it

tests/test_published_limits.py (#75) budgets the tree at 90% of the cap, so a
republish that crosses 900 MB fails make verify on the machine that ran
make publish, before the commit is pushed and long before the deploy is
refused. That is the gate working, not a gate to raise: this issue is the thing
it was written to make visible.

Prepared with AI assistance; reviewed before submission.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions