From 64d35e46eece71bab3c93d25da19b31cd1fa66a1 Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 11 Aug 2026 15:08:27 +1000 Subject: [PATCH] Flip the six high_dim_data datasets to repointed All 28 consuming reads are on main across the four repos, so the P3 wave is complete and the tracker should say so. This is the last push of the fold and the same-day close of the window PLAN describes as red by design. Verified locally against the real repos before pushing, both directions: migration.yml at `landed` -> exit 1, 6 warnings migration.yml at `repointed` -> exit 0, 0 warnings The six warnings are "marked landed but some consumer already reads data-lectures" -- the pre-existing assertion at build_audit.py:444. A non-zero strict audit also skips the Pages deploy, and Pages serves lectures/ as well as the dashboard, so the served data tree would have gone stale alongside. That window opened when the last C2 PR merged and closes here. consumed-file-check: 24 manifests, 25 files hash-checked, 0 errors. Records all FOUR repoint PRs, not the usual two: lecture-python-intro #832 lecture-wasm #60 lecture-intro.zh-cn #292 test-actions-lecture-intro #53 and populates each manifest's `consumers` with all four as well. This departs from the 18 existing records, which name only the two repos the audit scans. The departure is deliberate: zh-cn and the canary are real consumers that no CI can see, so this file is the only place they are written down at all, and the habit of recording only the scanned repos is what produced the undercount three times (ws#28, rule 6's enumeration table, and the "in 2020" prose count). Safe to record: build_audit derives its own consumer list from the scan (:403) and asserts on that, never on the manifest's; check_consumed_files uses `consumers` only to require existence and a hash, both already true. Confirmed by the green runs above. The other 18 manifests undercount the same way and want a separate backfill. Part of QuantEcon/workspace-lectures#23. Data: QuantEcon/data-lectures#62 Co-Authored-By: Claude Opus 5 (1M context) --- lectures/SCF_plus_mini.csv.yml | 12 ++- lectures/SCF_plus_mini_no_weights.csv.yml | 12 ++- lectures/cities_brazil.csv.yml | 12 ++- lectures/cities_us.csv.yml | 12 ++- lectures/forbes-billionaires.csv.yml | 12 ++- lectures/forbes-global2000.csv.yml | 12 ++- migration.yml | 96 ++++++++++++++++++++--- 7 files changed, 150 insertions(+), 18 deletions(-) diff --git a/lectures/SCF_plus_mini.csv.yml b/lectures/SCF_plus_mini.csv.yml index 397e0fb..5679ba4 100644 --- a/lectures/SCF_plus_mini.csv.yml +++ b/lectures/SCF_plus_mini.csv.yml @@ -96,7 +96,17 @@ schema: date_range: {start: 1950, end: 2016} known_nulls: {} # none — the builder drops them before writing -consumers: [] # nothing reads this URL until PR set C +consumers: + # All four repointed 2026-08-11. zh-cn and the canary are outside the + # audit's SCAN_REPOS, so they are recorded here or nowhere. + - repo: QuantEcon/lecture-python-intro + file: lectures/inequality.md + - repo: QuantEcon/lecture-wasm + file: lectures/inequality.md + - repo: QuantEcon/lecture-intro.zh-cn + file: lectures/inequality.md + - repo: QuantEcon/test-actions-lecture-intro + file: lectures/inequality.md builder: builders/generating_mini.md # committed-frozen, not committed: the notebook is kept as the record of what diff --git a/lectures/SCF_plus_mini_no_weights.csv.yml b/lectures/SCF_plus_mini_no_weights.csv.yml index 6619831..2c4a7ca 100644 --- a/lectures/SCF_plus_mini_no_weights.csv.yml +++ b/lectures/SCF_plus_mini_no_weights.csv.yml @@ -91,7 +91,17 @@ schema: # SCF_plus_mini.csv to 48,765,100 here. Measured 2026-08-10, not inferred. # Use the weighted file for anything sensitive to the extreme upper tail. -consumers: [] # nothing reads this URL until PR set C +consumers: + # All four repointed 2026-08-11. zh-cn and the canary are outside the + # audit's SCAN_REPOS, so they are recorded here or nowhere. + - repo: QuantEcon/lecture-python-intro + file: lectures/mle.md + - repo: QuantEcon/lecture-wasm + file: lectures/mle.md + - repo: QuantEcon/lecture-intro.zh-cn + file: lectures/mle.md + - repo: QuantEcon/test-actions-lecture-intro + file: lectures/mle.md builder: builders/generating_mini.md builder_status: committed-frozen diff --git a/lectures/cities_brazil.csv.yml b/lectures/cities_brazil.csv.yml index 68ea9ab..8f96cef 100644 --- a/lectures/cities_brazil.csv.yml +++ b/lectures/cities_brazil.csv.yml @@ -71,7 +71,17 @@ schema: # the largest 25 cities on its map. A blanket # no-nulls rule would reject this file. -consumers: [] # nothing reads this URL until PR set C +consumers: + # All four repointed 2026-08-11. zh-cn and the canary are outside the + # audit's SCAN_REPOS, so they are recorded here or nowhere. + - repo: QuantEcon/lecture-python-intro + file: lectures/heavy_tails.md + - repo: QuantEcon/lecture-wasm + file: lectures/heavy_tails.md + - repo: QuantEcon/lecture-intro.zh-cn + file: lectures/heavy_tails.md + - repo: QuantEcon/test-actions-lecture-intro + file: lectures/heavy_tails.md # verbatim — no builder builder_status: not-applicable diff --git a/lectures/cities_us.csv.yml b/lectures/cities_us.csv.yml index 9a8bb32..6a4b079 100644 --- a/lectures/cities_us.csv.yml +++ b/lectures/cities_us.csv.yml @@ -94,7 +94,17 @@ schema: # time series. known_nulls: {} # none — every column is complete -consumers: [] # nothing reads this URL until PR set C +consumers: + # All four repointed 2026-08-11. zh-cn and the canary are outside the + # audit's SCAN_REPOS, so they are recorded here or nowhere. + - repo: QuantEcon/lecture-python-intro + file: lectures/heavy_tails.md + - repo: QuantEcon/lecture-wasm + file: lectures/heavy_tails.md + - repo: QuantEcon/lecture-intro.zh-cn + file: lectures/heavy_tails.md + - repo: QuantEcon/test-actions-lecture-intro + file: lectures/heavy_tails.md # verbatim — no builder builder_status: not-applicable diff --git a/lectures/forbes-billionaires.csv.yml b/lectures/forbes-billionaires.csv.yml index 61ee6f4..5eceaa7 100644 --- a/lectures/forbes-billionaires.csv.yml +++ b/lectures/forbes-billionaires.csv.yml @@ -125,7 +125,17 @@ schema: pay: 2918 managementAssets: 2933 -consumers: [] # nothing reads this URL until PR set C +consumers: + # All four repointed 2026-08-11. zh-cn and the canary are outside the + # audit's SCAN_REPOS, so they are recorded here or nowhere. + - repo: QuantEcon/lecture-python-intro + file: lectures/heavy_tails.md + - repo: QuantEcon/lecture-wasm + file: lectures/heavy_tails.md + - repo: QuantEcon/lecture-intro.zh-cn + file: lectures/heavy_tails.md + - repo: QuantEcon/test-actions-lecture-intro + file: lectures/heavy_tails.md builder: builders/webscrape_forbes.ipynb # committed-frozen, not committed — same reasoning as its sibling diff --git a/lectures/forbes-global2000.csv.yml b/lectures/forbes-global2000.csv.yml index 581f61f..94a3ac5 100644 --- a/lectures/forbes-global2000.csv.yml +++ b/lectures/forbes-global2000.csv.yml @@ -89,7 +89,17 @@ schema: # date_range omitted: a single-vintage cross-section, no time dimension. known_nulls: {} # none — every column is complete -consumers: [] # nothing reads this URL until PR set C +consumers: + # All four repointed 2026-08-11. zh-cn and the canary are outside the + # audit's SCAN_REPOS, so they are recorded here or nowhere. + - repo: QuantEcon/lecture-python-intro + file: lectures/heavy_tails.md + - repo: QuantEcon/lecture-wasm + file: lectures/heavy_tails.md + - repo: QuantEcon/lecture-intro.zh-cn + file: lectures/heavy_tails.md + - repo: QuantEcon/test-actions-lecture-intro + file: lectures/heavy_tails.md builder: builders/webscrape_forbes.ipynb # committed-frozen, not committed: the notebook is kept as the record of what diff --git a/migration.yml b/migration.yml index 81c9134..0d32b57 100644 --- a/migration.yml +++ b/migration.yml @@ -332,62 +332,134 @@ datasets: forbes-global2000.csv: pilot: P3 - status: landed + status: repointed prior_pattern: external landed: pr: QuantEcon/data-lectures#62 date: 2026-08-10 - repoints: [] + repoints: + - repo: QuantEcon/lecture-python-intro + pr: QuantEcon/lecture-python-intro#832 + date: 2026-08-11 + - repo: QuantEcon/lecture-wasm + pr: QuantEcon/lecture-wasm#60 + date: 2026-08-11 + - repo: QuantEcon/lecture-intro.zh-cn + pr: QuantEcon/lecture-intro.zh-cn#292 + date: 2026-08-11 + - repo: QuantEcon/test-actions-lecture-intro + pr: QuantEcon/test-actions-lecture-intro#53 + date: 2026-08-11 cutover: null forbes-billionaires.csv: pilot: P3 - status: landed + status: repointed prior_pattern: external landed: pr: QuantEcon/data-lectures#62 date: 2026-08-10 - repoints: [] + repoints: + - repo: QuantEcon/lecture-python-intro + pr: QuantEcon/lecture-python-intro#832 + date: 2026-08-11 + - repo: QuantEcon/lecture-wasm + pr: QuantEcon/lecture-wasm#60 + date: 2026-08-11 + - repo: QuantEcon/lecture-intro.zh-cn + pr: QuantEcon/lecture-intro.zh-cn#292 + date: 2026-08-11 + - repo: QuantEcon/test-actions-lecture-intro + pr: QuantEcon/test-actions-lecture-intro#53 + date: 2026-08-11 cutover: null cities_us.csv: pilot: P3 - status: landed + status: repointed prior_pattern: external landed: pr: QuantEcon/data-lectures#62 date: 2026-08-10 - repoints: [] + repoints: + - repo: QuantEcon/lecture-python-intro + pr: QuantEcon/lecture-python-intro#832 + date: 2026-08-11 + - repo: QuantEcon/lecture-wasm + pr: QuantEcon/lecture-wasm#60 + date: 2026-08-11 + - repo: QuantEcon/lecture-intro.zh-cn + pr: QuantEcon/lecture-intro.zh-cn#292 + date: 2026-08-11 + - repo: QuantEcon/test-actions-lecture-intro + pr: QuantEcon/test-actions-lecture-intro#53 + date: 2026-08-11 cutover: null cities_brazil.csv: pilot: P3 - status: landed + status: repointed prior_pattern: external landed: pr: QuantEcon/data-lectures#62 date: 2026-08-10 - repoints: [] + repoints: + - repo: QuantEcon/lecture-python-intro + pr: QuantEcon/lecture-python-intro#832 + date: 2026-08-11 + - repo: QuantEcon/lecture-wasm + pr: QuantEcon/lecture-wasm#60 + date: 2026-08-11 + - repo: QuantEcon/lecture-intro.zh-cn + pr: QuantEcon/lecture-intro.zh-cn#292 + date: 2026-08-11 + - repo: QuantEcon/test-actions-lecture-intro + pr: QuantEcon/test-actions-lecture-intro#53 + date: 2026-08-11 cutover: null SCF_plus_mini.csv: pilot: P3 - status: landed + status: repointed prior_pattern: external landed: pr: QuantEcon/data-lectures#62 date: 2026-08-10 - repoints: [] + repoints: + - repo: QuantEcon/lecture-python-intro + pr: QuantEcon/lecture-python-intro#832 + date: 2026-08-11 + - repo: QuantEcon/lecture-wasm + pr: QuantEcon/lecture-wasm#60 + date: 2026-08-11 + - repo: QuantEcon/lecture-intro.zh-cn + pr: QuantEcon/lecture-intro.zh-cn#292 + date: 2026-08-11 + - repo: QuantEcon/test-actions-lecture-intro + pr: QuantEcon/test-actions-lecture-intro#53 + date: 2026-08-11 cutover: null SCF_plus_mini_no_weights.csv: pilot: P3 - status: landed + status: repointed prior_pattern: external landed: pr: QuantEcon/data-lectures#62 date: 2026-08-10 - repoints: [] + repoints: + - repo: QuantEcon/lecture-python-intro + pr: QuantEcon/lecture-python-intro#832 + date: 2026-08-11 + - repo: QuantEcon/lecture-wasm + pr: QuantEcon/lecture-wasm#60 + date: 2026-08-11 + - repo: QuantEcon/lecture-intro.zh-cn + pr: QuantEcon/lecture-intro.zh-cn#292 + date: 2026-08-11 + - repo: QuantEcon/test-actions-lecture-intro + pr: QuantEcon/test-actions-lecture-intro#53 + date: 2026-08-11 cutover: null # Planned waves that have not landed anything here yet. `datasets` names the