You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Re-probe the eight published hosts and record each host's newest publish run #135
#127 §6.2. The 2026-09-07 comment on QuantEcon/workspace-lectures#40 reported 0 of 60 Track X rows cleared and attributed it to no publish since 2026-09-01. The validating session could not reach any of the eight hosts (python-programming.quantecon.org, python.quantecon.org, and the six quantecon.github.io/… sites) or the Actions API, so the box is open.
Partial evidence in hand
Newest publish* tag by creatordate in each host's repository: lecture-python-programmingpublish-2026aug20, lecture-python.mystpublish-2026aug14, lecture-dppublish-2026jul07 (this repo also publishes on workflow_dispatch, which leaves no tag), lecture-python.zh-cnpublish-2026aug24b, lecture-python-programming.{zh-cn,fr,fa}publish-2026aug19; .ml publishes on push, last gh-pages deploy 2026-09-04. No publish tag after 2026-09-01 anywhere, consistent with the ws#40 pass.
To do, from a machine with a browser or wget and gh
For each of the eight repositories: gh run list --workflow publish.yml --limit 3 --json createdAt,event,conclusion,headBranch — the newest run, not the tag list (tags are not date-ordered).
Re-probe five rows per host from the Track X tables on ws#40 with a different client from the original curl loop (wget --spider --server-response, or a browser): expect 200 at the deletion-day byte count while nothing has published, 404 with the 9,379-byte Pages body once a publish follows a clean rebuild. Run the two controls per host first (a lecture page → 200, a never-existed path → 404).
A census of all 60 rows, not the 5-per-host sample this issue asked for, and 0 cleared. Two clients that are not curl (GNU Wget, then Python urllib), full GETs with the body byte-counted. Controls discriminated on all eight hosts — eight distinct/intro.html bodies, so no host was on a wrong base URL, and one identical 9,379 B stock Pages 404 on a never-existed path, so no host has an SPA 200-fallback. Every deleted path answers 200 with a body byte-identical by sha256 to the pre-deletion git blob, fetched at the parent of each Track X commit. Nothing cleared, and nothing changed either. The kept control is still 200 at its original size, so Track X removed exactly what it intended.
The row universe is now derived rather than asserted: the eight Track X commits removed 64 files, 60 of them under _static/lecture_specific/. python.quantecon.org genuinely has one row, not five.
The attribution holds, and is now measured rather than inferred. Cache-buster GETs on a fresh CDN key returned identical bytes; for the three gh-pages hosts the deleted file is still physically in the deployed tree. Seven hosts simply have not published since the deletions. .ml has deployed three times since — including on the Track X commit itself — and still serves everything, which is positive proof of the keep_files: true exemption rather than an inference from the workflow file.
Two things moved forward. The rebuild half of the settle gate is now met on all seven cache-bearing hosts (this morning's cache.yml runs), so only the tag is outstanding anywhere. And the deploy mechanism is verified for all eight rather than assumed — quantecon/actions/publish-gh-pages turns out to be upload-pages-artifact + deploy-pages, a full replace, so every non-.ml host will prune on its next publish.
Method note for the next pass: gh run listcreatedAt is the run start, not the deploy — .fr's last publish ran 3.5 hours. gh api repos/<r>/deployments?environment=github-pages is authoritative and works for all eight, including the artifact-based repos where pages/builds/latest 404s.
#127 §6.2 is ticked. The rows themselves stay open on ws#40.
Activity
mmcky commentedon Sep 7, 2026
Re-probed 2026-09-07. The per-host table and the full method are on QuantEcon/workspace-lectures#40, which owns the rows: https://github.com/QuantEcon/workspace-lectures/issues/40#issuecomment-5568105442
A census of all 60 rows, not the 5-per-host sample this issue asked for, and 0 cleared. Two clients that are not
curl(GNU Wget, then Python urllib), full GETs with the body byte-counted. Controls discriminated on all eight hosts — eight distinct/intro.htmlbodies, so no host was on a wrong base URL, and one identical 9,379 B stock Pages 404 on a never-existed path, so no host has an SPA 200-fallback. Every deleted path answers 200 with a body byte-identical by sha256 to the pre-deletion git blob, fetched at the parent of each Track X commit. Nothing cleared, and nothing changed either. The kept control is still 200 at its original size, so Track X removed exactly what it intended.The row universe is now derived rather than asserted: the eight Track X commits removed 64 files, 60 of them under
_static/lecture_specific/.python.quantecon.orggenuinely has one row, not five.The attribution holds, and is now measured rather than inferred. Cache-buster GETs on a fresh CDN key returned identical bytes; for the three
gh-pageshosts the deleted file is still physically in the deployed tree. Seven hosts simply have not published since the deletions..mlhas deployed three times since — including on the Track X commit itself — and still serves everything, which is positive proof of thekeep_files: trueexemption rather than an inference from the workflow file.Two things moved forward. The rebuild half of the settle gate is now met on all seven cache-bearing hosts (this morning's
cache.ymlruns), so only the tag is outstanding anywhere. And the deploy mechanism is verified for all eight rather than assumed —quantecon/actions/publish-gh-pagesturns out to beupload-pages-artifact+deploy-pages, a full replace, so every non-.mlhost will prune on its next publish.Method note for the next pass:
gh run listcreatedAtis the run start, not the deploy —.fr's last publish ran 3.5 hours.gh api repos/<r>/deployments?environment=github-pagesis authoritative and works for all eight, including the artifact-based repos wherepages/builds/latest404s.#127 §6.2 is ticked. The rows themselves stay open on ws#40.
Generated by Claude Code