diff --git a/CATALOG.md b/CATALOG.md index b80af68..ff08fc5 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -47,7 +47,7 @@ The dataset registry, **auto-generated** from the sidecar manifests (`lectures/* | [**mpd2020.xlsx**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/mpd2020.xlsx)
Maddison Project Database 2020 — GDP per capita and population, 1 CE to 2018 | constructed | [Maddison Project Database, version 2020](https://www.rug.nl/ggdc/historicaldevelopment/maddison/releases/maddison-project-database-2020) | CC BY 4.0 | ✅ permitted | ⇄ diverged | ⚠️ unrecovered | 1.7 MB | [lecture-python-intro · long_run_growth.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/long_run_growth.md)
[lecture-wasm · long_run_growth.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/long_run_growth.md)
[lecture-intro.zh-cn · long_run_growth.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/long_run_growth.md)
[test-actions-lecture-intro · long_run_growth.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/long_run_growth.md) | | [**nom_balances.npy**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/nom_balances.npy)
French Revolution — monthly nominal assignat balances, 1789-1796 | constructed | unrecorded | | ✅ permitted | ⚠️ unverifiable | ⚠️ unrecovered | 1.4 KB | [lecture-python-intro · french_rev.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/french_rev.md)
[lecture-wasm · french_rev.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/french_rev.md)
[lecture-intro.zh-cn · french_rev.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/french_rev.md)
[test-actions-lecture-intro · french_rev.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/french_rev.md)
⚠️ Reads a local `datasets/` copy, not this file | | [**realwage.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/realwage.csv)
OECD real minimum wages — 32 countries, 2006–2016 | constructed | [OECD — Real minimum wages (RMW)](https://stats.oecd.org/Index.aspx?DataSetCode=RMW) | CC BY 4.0 | ✅ permitted | ⚠️ unverifiable | ⚠️ unrecovered | 118.7 KB | [lecture-python-programming · pandas_panel.md](https://github.com/QuantEcon/lecture-python-programming/blob/main/lectures/pandas_panel.md)
[lecture-python.myst · pandas_panel.md](https://github.com/QuantEcon/lecture-python.myst/blob/main/lectures/pandas_panel.md)
[lecture-python.zh-cn · pandas_panel.md](https://github.com/QuantEcon/lecture-python.zh-cn/blob/main/lectures/pandas_panel.md) | -| [**test_pwt.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/test_pwt.csv)
Penn World Table teaching extract — eight countries, year 2000 | constructed | [Penn World Table (Heston, Summers and Aten; PWT 6.x/7.x era) — exact vintage unestablished](https://www.rug.nl/ggdc/productivity/pwt/pwt-releases/pwt-7.0) | | ✅ permitted | ⚠️ unverifiable | ⚠️ unrecovered | 793 B | [lecture-python-programming · pandas.md](https://github.com/QuantEcon/lecture-python-programming/blob/main/lectures/pandas.md)
[lecture-python-programming · polars.md](https://github.com/QuantEcon/lecture-python-programming/blob/main/lectures/polars.md)
[lecture-python-programming.zh-cn · pandas.md](https://github.com/QuantEcon/lecture-python-programming.zh-cn/blob/main/lectures/pandas.md)
⚠️ Synced translation; reads lecture-python-programming's raw URL, not this file
[lecture-python-programming.zh-cn · polars.md](https://github.com/QuantEcon/lecture-python-programming.zh-cn/blob/main/lectures/polars.md)
⚠️ Synced translation; same URL, same sync dependency as pandas.md above
[lecture-python-programming.fr · pandas.md](https://github.com/QuantEcon/lecture-python-programming.fr/blob/main/lectures/pandas.md)
⚠️ Synced translation; reads lecture-python-programming's raw URL, not this file
[lecture-python-programming.fr · polars.md](https://github.com/QuantEcon/lecture-python-programming.fr/blob/main/lectures/polars.md)
⚠️ Synced translation; same URL, same sync dependency
[lecture-python-programming.fa · pandas.md](https://github.com/QuantEcon/lecture-python-programming.fa/blob/main/lectures/pandas.md)
⚠️ Synced translation; reads lecture-python-programming's raw URL, not this file
[lecture-python-programming.fa · polars.md](https://github.com/QuantEcon/lecture-python-programming.fa/blob/main/lectures/polars.md)
⚠️ Synced translation; same URL, same sync dependency | +| [**test_pwt.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/test_pwt.csv)
Penn World Table teaching extract — eight countries, year 2000 | constructed | [Penn World Table (Heston, Summers and Aten; PWT 6.x/7.x era) — exact vintage unestablished](https://www.rug.nl/ggdc/productivity/pwt/pwt-releases/pwt-7.0) | | ✅ permitted | ⚠️ unverifiable | ⚠️ unrecovered | 793 B | [lecture-python-programming · pandas.md](https://github.com/QuantEcon/lecture-python-programming/blob/main/lectures/pandas.md)
[lecture-python-programming · polars.md](https://github.com/QuantEcon/lecture-python-programming/blob/main/lectures/polars.md)
[lecture-python-programming.zh-cn · pandas.md](https://github.com/QuantEcon/lecture-python-programming.zh-cn/blob/main/lectures/pandas.md)
[lecture-python-programming.zh-cn · polars.md](https://github.com/QuantEcon/lecture-python-programming.zh-cn/blob/main/lectures/polars.md)
[lecture-python-programming.fr · pandas.md](https://github.com/QuantEcon/lecture-python-programming.fr/blob/main/lectures/pandas.md)
[lecture-python-programming.fr · polars.md](https://github.com/QuantEcon/lecture-python-programming.fr/blob/main/lectures/polars.md)
[lecture-python-programming.fa · pandas.md](https://github.com/QuantEcon/lecture-python-programming.fa/blob/main/lectures/pandas.md)
[lecture-python-programming.fa · polars.md](https://github.com/QuantEcon/lecture-python-programming.fa/blob/main/lectures/polars.md) | | [**us_adult_heights.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/us_adult_heights.csv)
United States — adult standing height by sex, NHANES 2015-2018 | constructed | [National Health and Nutrition Examination Survey (NHANES), US Centers for Disease Control and Prevention, National Center for Health Statistics](https://www.cdc.gov/nchs/nhanes/index.htm) | US Government work — public domain | ✅ permitted | ✅ verified | ✅ committed | 123.1 KB | [lecture-python-intro · prob_dist.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/prob_dist.md)
[lecture-python-intro · observed_distributions.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/observed_distributions.md)
[lecture-python-intro · fitting_distributions.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/fitting_distributions.md)
[lecture-intro.zh-cn · fitting_distributions.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/fitting_distributions.md)
[lecture-intro.zh-cn · observed_distributions.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/observed_distributions.md)
[lecture-intro.zh-cn · prob_dist.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/prob_dist.md)
⚠️ Reads a local `_static/lecture_specific/prob_dist/` copy, not this file, under a comment that still says to switch once the datasets repo exists | | [**usa-gini-nwealth-tincome-lincome.csv**](https://github.com/QuantEcon/data-lectures/raw/main/lectures/usa-gini-nwealth-tincome-lincome.csv)
US Gini coefficients — net wealth, total income and labour income, 1950-2016 | constructed | [Derived from SCF_plus_mini.csv (this repo), an extract of the SCF+ panel](https://github.com/QuantEcon/data-lectures/blob/main/lectures/SCF_plus_mini.csv) | | ✅ permitted | ⚠️ unverifiable | committed-frozen | 1.2 KB | [lecture-python-intro · inequality.md](https://github.com/QuantEcon/lecture-python-intro/blob/main/lectures/inequality.md)
[lecture-wasm · inequality.md](https://github.com/QuantEcon/lecture-wasm/blob/main/lectures/inequality.md)
[lecture-intro.zh-cn · inequality.md](https://github.com/QuantEcon/lecture-intro.zh-cn/blob/main/lectures/inequality.md)
[test-actions-lecture-intro · inequality.md](https://github.com/QuantEcon/test-actions-lecture-intro/blob/main/lectures/inequality.md) | diff --git a/lectures/test_pwt.csv.yml b/lectures/test_pwt.csv.yml index 636b55c..c3c5ce4 100644 --- a/lectures/test_pwt.csv.yml +++ b/lectures/test_pwt.csv.yml @@ -139,21 +139,23 @@ schema: # --------------------------------------------------------------------------- # Consumers — how a correction knows what to rebuild # --------------------------------------------------------------------------- -# EIGHT consuming lecture files across four repos, all reading the SOURCE -# repo's raw URL (raw.githubusercontent.com/QuantEcon/lecture-python-programming/ -# main/...) — so deleting the source copy breaks all of them AT RUNTIME with no -# stale-serving grace period, translations included. Established 2026-08-18 by -# basename grep with size controls against the live default branches of all -# four repos. Three of polars.md's four reads build the URL across THREE -# adjacent string literals; a whole-URL grep returns a confident zero — sweep -# by basename. +# EIGHT consuming lecture files across four repos, ALL repointed to this file +# as of 2026-08-18 — certified by a basename sweep with size controls against +# the live default branches of all four repos (1 read in each pandas.md, 3 in +# each polars.md, zero old-URL residue). The translation repos are OUTSIDE the +# audit's scan set, so they are recorded here or nowhere. # -# The translation repos are OUTSIDE the audit's scan set, so they are recorded -# here or nowhere. They are not direct repoint targets: their .md files are -# overwritten wholesale by lecture-python-programming's sync-translations-* -# workflows, so the repoint propagates by sync after the source repoint -# merges — but the DELETION gate must wait until all three have synced, -# rebuilt and republished, or their live sites break at cell execution. +# The DELETION gate on the source copy is now only republish lag: each of the +# four sites' published notebooks bakes whatever URL its last publish saw, so +# the old copy must stay until all four have republished from repointed +# source. Two propagation traps hit on the way here and are worth knowing +# before trusting a future sync: the sync workflows open PRs (they do not +# commit), and a \translate-resync regenerates from the SOURCE PR's merge-time +# snapshot, which can silently revert later source edits — it did exactly that +# to two of these reads once (restored same day; the defect is +# QuantEcon/action-translation#276). A fifth translation repo +# (lecture-python-programming.ml) holds an orphan copy of this file but has no +# pandas/polars lectures, so it is not a consumer. consumers: - repo: QuantEcon/lecture-python-programming file: lectures/pandas.md @@ -161,33 +163,16 @@ consumers: file: lectures/polars.md - repo: QuantEcon/lecture-python-programming.zh-cn file: lectures/pandas.md - note: > - Synced translation; reads lecture-python-programming's raw URL, not this - file. Repointed indirectly when the source repoint syncs; do not delete - the source copy until this repo has synced and republished. Tracked with - the Track D record in QuantEcon/data-lectures migration.yml. - repo: QuantEcon/lecture-python-programming.zh-cn file: lectures/polars.md - note: > - Synced translation; same URL, same sync dependency as pandas.md above. - repo: QuantEcon/lecture-python-programming.fr file: lectures/pandas.md - note: > - Synced translation; reads lecture-python-programming's raw URL, not this - file. Same sync dependency as the zh-cn entries. - repo: QuantEcon/lecture-python-programming.fr file: lectures/polars.md - note: > - Synced translation; same URL, same sync dependency. - repo: QuantEcon/lecture-python-programming.fa file: lectures/pandas.md - note: > - Synced translation; reads lecture-python-programming's raw URL, not this - file. Same sync dependency as the zh-cn entries. - repo: QuantEcon/lecture-python-programming.fa file: lectures/polars.md - note: > - Synced translation; same URL, same sync dependency. builder: null builder_status: unrecovered diff --git a/migration.yml b/migration.yml index 3d75a6b..7ceaac4 100644 --- a/migration.yml +++ b/migration.yml @@ -810,14 +810,13 @@ datasets: cutover: null # Track D — the one lecture-python-programming dataset, riding with C2 (its - # rename is on the same phase-2 review). Read over the SOURCE repo's raw URL - # from pandas.md, polars.md AND the three synced translation repos - # (.zh-cn/.fr/.fa), so the deletion gate is wider than usual: repoint the - # source, wait for the sync-translations workflows to propagate it, and - # verify all four repos have rebuilt and republished before deleting — - # otherwise the translations break at cell execution with no grace period. - # Three of polars.md's four reads split the URL across three string - # literals; sweep by basename. + # rename is on the same phase-2 review). Was read over the SOURCE repo's raw + # URL from pandas.md, polars.md AND the three synced translation repos + # (.zh-cn/.fr/.fa); all four repos repointed 2026-08-18 (translations via + # sync PRs, certified by basename sweep). The deletion gate that remains: + # all four sites' PUBLISHED notebooks must be rebuilt from repointed source + # before the source copy is deleted — published notebooks bake the URL of + # their last publish, and the read is a live fetch at cell execution. test_pwt.csv: pilot: D status: repointed