Skip to content

Phase 4 cutover: swap interim raw URLs → data.quantecon.org/lectures #15

Description

@mmcky

Tracks the one-time swap of every interim data URL to the final data.quantecon.org/lectures/ form, once Phase 4 (Publishing) is live. Opened now, while the first interim link is still on a single unmerged branch, so the cutover is inventoried from the start rather than reconstructed later.

The two URL forms

Form Example When
Interim (in use now) https://github.com/QuantEcon/data-lectures/raw/main/lectures/<file> Every pilot repoint. Decoupled from hosting, survives the LFS switch, needs no DNS.
Final (this issue) https://data.quantecon.org/lectures/<filename> After GitHub Pages + the custom domain are live (PLAN Phase 4).

The interim→final swap is a mechanical find-replace that changes zero lecture behaviour — the bytes served are the same, only the host differs. That is the whole point of the decoupled interim form.

The gate — do not start the swap until this is true

Phase 4 must be live first: GitHub Pages deploying the lectures/ tree (lfs: true at checkout), the data.quantecon.org custom domain resolving to Pages, and CORS (access-control-allow-origin: *) verified for pyodide/JupyterLite. Phase 4 is itself blocked on a DNS decision: data.quantecon.org is currently a bare A record → 52.64.86.66 (an AWS Sydney box, HTTPS timing out) that must be confirmed decommissionable before the record is repointed. See PLAN.md Phase 4.

Swapping a lecture to data.quantecon.org before that host serves the file reintroduces exactly the 404 this project spent effort removing. Final URL second, never first.

Source of truth — do not hand-maintain a URL list

The inventory is derivable, so it is never a stale hand-kept list:

  1. Greppable — every interim link matches one string. Regenerate the full inventory across the cloned consumer repos any time:
bin/foreach git grep -n 'data-lectures/raw/main/lectures/' -- '*.md' '*.ipynb' '*.py' '*.rst'
  1. Manifests — each dataset's consumers: list already records repo + file for everything that points here (required on every repoint). The grep and the manifests should agree; a mismatch is the signal something was repointed without updating its manifest.

The swap recipe (per consumer file, once the gate is open)

Replace https://github.com/QuantEcon/data-lectures/raw/main/lectures/ with https://data.quantecon.org/lectures/ in each file below, one PR per consumer repo, then rebuild and confirm the page's figure hashes are unchanged (the P1 method: diff _images/<sha>.png against the live site).

Checklist (grows as pilots land)

Part of PLAN Phase 4 / Phase 9. See QuantEcon/meta#338 (pilot) and QuantEcon/QuantEcon.manual#108 (convention).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions