Tracking: July 2026 maintenance audit (83 verified findings)
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 0
- Forks
- 1
- Avg merge
- 32m
- Merged PRs (30d)
- 3
Description
Tracking issue for the July 2026 full-repository maintenance audit. Milestone: Maintenance audit 2026-07.
A multi-agent sweep of every tracked file across 14 dimensions, then two adversarial verification passes: 135 raw findings, 63 rejected, 72 confirmed, 11 added by four completeness sweeps, 83 actioned. Nothing found is architectural.
The work, ordered by dependency
-
#103 — repair the container publish and validation pipeline (— done in v0.9.0 (#111): uppercaseinfrastructurehigh-priority)ghcr.io/QuantEcon/…fromgithub.repository_ownermade buildx registry cache refs fail non-fatally, leaving builds cold and green (CHANGELOG.md:233-237); an unserialised workflow let an older commit win:latest(:238-240); a concurrency group shared across runs cancelled most of the lecture-validation matrix (:241-247); both unattended workflows now open a deduplicated failure issue viascripts/create-ci-failure-issue.sh(:194-200), the alerting nine red weeks in Feb–Apr 2026 lacked. -
#104 —— done in v0.9.0 (#112); unblocks the #92restore-jupyter-cachesave-mode outputs (bughigh-priority)save-cacherollout. Top-levelactions/cache@v6declares onlycache-hit, so save mode's outputs came back empty —cache-hitfalseon a perfect restore,fail-on-missfailing unconditionally; restore now always usesactions/cache/restore@v6, with alookup-only: truestep registering the job-end save hook (CHANGELOG.md:213-221). In CI since v0.10.0: both cache types × both modes,fail-on-missboth ways (CHANGELOG.md:141-151). - #105 — preview deploy errors, CLI pinning, fork guidance (
bugsecurityhigh-priority). Partly overtaken by v0.11.1 (#131):deploy-urlnow comes from thepr-Nalias, not a grep of wrangler output, and the survivingdeployment-urlextraction ends|| true(preview-cloudflare/action.yml:124,:131-134). Untouched:DEPLOY_OUTPUT=$(wrangler … 2>&1)at:93still aborts under-e, leaving the output dump at:102-104and friendly error at:106-109unreachable, andwrangler@latestis unpinned at:71. Line numbers have drifted; re-derive before editing. Closes PLAN item 8. - #106 — Anaconda 2026.06 baseline and measured sizes (
documentationhigh-priority). CHANGELOG half closed: #95/#90/#94 gaps filled in the v0.9.0 section (CHANGELOG.md:203-210), #101 recorded retrospectively in v0.10.0 (CHANGELOG.md:166-169). Seven sites still say Anaconda 2025.12 while both images shipanaconda=2026.06(containers/quantecon/environment.yml:11):docs/ARCHITECTURE.md:12,docs/CONTAINER-GUIDE.md:9,containers/README.md:18,containers/quantecon/README.md:15and:107,containers/quantecon-build/README.md:26and:82. The dependency policy inPLAN.md, which actively misled by pinning containers back to a superseded baseline, was corrected in #139. Six docs also carry the round~8GB / ~3GBpair and a "~60% smaller" claimREADME.md:147-148contradicts (containers/README.md:9and:35); v0.11.0 moved CI size reporting to compressed manifest bytes (CHANGELOG.md:83-84), not comparable, so stragglers need re-measuring, not copying. - #107 — batch of small correctness fixes (
bug). 7 of 10 boxes remain. Theif: always()fix landed — both guards readalways() && … != 'true'atbuild-jupyter-cache/action.yml:384and:649— and #122 deletedbuild-jupyter-cache/scripts/, mooting its twocreate-failure-issue.shitems. The substring builder parse is still live: validation atbuild-jupyter-cache/action.yml:106, the same three*"jupyter"*/*"pdflatex"*/*"html"*tests repeated at:120-136. Advances PLAN items 7 and 15. - #108 — unify container smoke tests, fix the fixture (
infrastructure). Mostly shipped in v0.11.0 (#125):containers/quantecon/tests/smoke-test.shcovers the container marker, xelatex, an executing HTML build and pdflatex, plus a--self-testthat fails if a raising cell stays green;.github/workflows/test-container.yml:14-37is one two-image matrix (:24-25) running a realcontainer:job (:32-37) instead ofdocker run, size split to a sibling job (:77-101);smoke-test.sh:83-84runs unconditionally, giving the lean image its first pdflatex build; the fixture executes and asserts;run-local-tests.sh:5hasset -euo pipefail. Two residuals, one PR's worth:containers/quantecon/tests/test-container.shsurvives untouched withcontainers/quantecon/README.md:227still pointing at it, and the fixture keepshtml_theme: sphinx_book_themeandfontpkg: ""(containers/quantecon/tests/minimal-jupyter-book/_config.yml:26and:28), leavingquantecon_book_themeand FreeSerif untested. Distinct from #100 — these tests exist but could not fail. - #109 — reconcile READMEs and templates with shipped code (
documentation). Fold in #99 while in the same file.
Tracker structure
QEP-2 routes umbrella issues to native sub-issues with no Type label on the parent.
-
Add #105–#109 as native sub-issues, plus closed #103 and #104 for the audit trail.— done; all seven are linked. -
Then remove the— done, in that order: QEP-2's exemption from "unlabelled means needs triage" keys on the sub-issue relationship, so dropping it first would have left the tracker looking untriaged rather than structural.maintenanceType label
Labelling and related issues
Labels follow QEP-2, now Accepted: infrastructure not maintenance for CI/build/deploy work, grouping by milestone rather than an audit label. security on #105 is a cross-cutting modifier, not a second Type. testing is retired to infrastructure/maintenance; #108 and #100 both moved, so nothing here uses it.
Nothing supersedes an existing issue. #100 (action-logic test coverage) stays open: its stage-1 harness shipped in v0.10.0, #108 covers only existing container tests being unable to fail, and its release-gating stage is tracked in #135. #99 folds into #109. #92 is open and unblocked. #83 and #14 were advanced here but closed elsewhere — #83 in v0.11.0 (#122, #123 variant in #127), which moots PLAN item 14 since create-failure-issue.sh was deleted rather than hardened, and #14 in v0.11.1 (#131). PLAN items 7, 8 and 15 remain open.
The full ranked report — 83 findings, a 26-row quick-wins table, per-finding evidence — sits outside the repo.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
This is an umbrella tracker, not a self-contained change; start with the open sub-issues #105–#109 and their named files, such as preview-cloudflare/action.yml, CHANGELOG.md, and the container documentation and tests. Read the relevant sub-issue first, then verify its stated tests or documentation checks. Done means the remaining sub-issue work is completed and this audit checklist is updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, github-actions, shell
- Domain
- build-system, ci-cd, devops, documentation
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100