Skip to content

Sweep every QuantEcon repository for a reader of business_cycle_data.csv #134

Closed

Description

@quantecon-services

The one check from #127 (§1.2 and §6.4) that the original session skipped outright and the validating session could only do in part. business_cycle_data.csv was served publicly from 2025-02 until the rename on 2026-09-07; a reader of the old name anywhere in the org is a reader-facing regression to file, not a caveat.

Already covered (zero hits)

Depth-1 clones searched with git grep -I business_cycle_data and git ls-files: the eight audit repos (lecture-python-intro, lecture-python-programming, lecture-python.myst, lecture-python-advanced.myst, lecture-jax, lecture-dp, lecture-wasm, continuous_time_mcs), lecture-stats, lecture-python.zh-cn, lecture-intro.zh-cn, lecture-python-programming.{zh-cn,fr,fa,ml} (including .ml's gh-pages), the seven .notebooks mirrors, tom-econ370-2025, 2026-tom-course, test-actions-lecture-intro, python-lecture-sandpit.myst, QuantEcon.lectures.code, quantecon-notebooks-python, meta, website, skills, qeps, workspace-lectures, status-projects — 34 repositories — plus all 15 branch tips of lecture-wasm (there is no wasm branch and no repoint/* branch; the non-default branches are datasets/track-a-remainder, track-x-orphans, ci/data-url-guard, gh-pages and eleven theme/docs branches). In this repository the name survives only as dated history (PLAN.md:27,34, migration.yml:839, scripts/audit_annotations.yml:48, AGENTS.md:58, builders/business_cycle.py:20, the manifest header). lecture-dp.notebooks and lecture-python-intro.fa do not exist.

To do, from a machine with gh

  1. gh search code 'business_cycle_data org:QuantEcon' — the token is distinctive, so code search works here; expect only this repository's history notes.
  2. The pass search cannot do: gh repo list QuantEcon --limit 400 --json nameWithOwner,defaultBranchRef,isArchived, then for every repository gh api "repos/{owner}/{repo}/git/trees/{default_branch}?recursive=1" --jq '.tree[].path' filtered for business_cycle_data (case-insensitive). Note truncated trees (truncated: true) and fall back to a clone for those. Record the repository count swept.
  3. Any hit outside this repository: open a regression issue here naming the repository, path and line, and leave the VALIDATION: independent review of the 2026-09-07 schema-decisions, rename and manifest-driven validator work #127 boxes open until it is repointed or shown dead.

Exit criterion

The sweep result (repository count, hits or none) is posted on #127 and its §1.2 and §6.4 boxes are ticked, or a regression issue exists.

Activity

  1. mmcky commented on Sep 7, 2026

    @mmcky
    Contributor

    Swept 2026-09-07. 286 repositories enumerated, 283 swept, zero readers of the old name outside this repository.

    The enumeration reconciles with the org itself — gh api orgs/QuantEcon gives 215 public + 71 private = 286 — so private and archived repositories were in scope and were swept. 283 were swept twice: a recursive Trees-API pass over every default branch (34,179 entries, truncated: false on all 283, so the depth-1 fallback this issue anticipated was never needed) and a depth-1 clone with git grep for content, which is what covers the 26 archived repositories and 3 forks that GitHub code search does not index. The 3 not swept — test-cli, numfocus, quantecon-book-dp — are empty: size: 0, zero branches, and the Trees API returns HTTP 409 Git Repository is empty.

    Zero path hits for business_cycle_data anywhere in the org. Fourteen content hits, every one inside this repository and every one the dated history step 1 predicted: PLAN.md 27, 34, 301, 308, 309, 324, 343; AGENTS.md:58; builders/business_cycle.py:20; manifest-schema.yml 49 and 228; migration.yml:839; scripts/audit_annotations.yml:48; and the gdp_growth_annual.csv.yml header. gh search code 'business_cycle_data org:QuantEcon' independently returned 9 lines, all from here. No regression issue to open.

    An adversarial re-run then attacked the coverage and closed three gaps beyond what this issue asked for. It re-derived the enumeration and spot-checked five random repositories — including a private one and an archived one — by re-running the Trees call and matching both the full path set and the root tree SHA, confirming they were genuinely inspected. Then: every branch of the eight audit repositories and this one (268 branches, 43,118 entries) plus a full-history all-refs content grep of those eight (883 refs, including lecture-wasm's 16 and its gh-pages) — the only path hits are 12, every one in this repository on stale pre-rename branches; gh-pages org-wide (39 repositories, 18,079 files), which neither this issue's plan nor the sweep had covered and which is where the published site actually lives; and the org's only two submodules, both in lecture-mapping, which neither the Trees API nor a non-recursive clone expands. All zero.

    Named rather than closed: the non-default branches of roughly 245 low-risk repositories, fork PR heads outside the audit repositories, and any out-of-org or non-GitHub reader — unmeasurable in principle, so a bound rather than a proof. Recorded as residuals on #127.

    #127 §1.2 and §6.4 are ticked.


    Generated by Claude Code

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

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions