Skip to content

Record D11: invest in qeld, defer data.quantecon.org indefinitely - #76

Merged
mmcky merged 1 commit into
mainfrom
qeld-replaces-custom-domain
Aug 12, 2026
Merged

Record D11: invest in qeld, defer data.quantecon.org indefinitely#76
mmcky merged 1 commit into
mainfrom
qeld-replaces-custom-domain

Conversation

@mmcky

@mmcky mmcky commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

The decision

The programme has carried two candidate stable interfaces without ever choosing between them: a branded host (data.quantecon.org/lectures/<file> — Track Y, #37, #15) and the qeld package (#65). Decision, 2026-08-12: invest in qeld; defer the custom domain indefinitely. The recorded reasons (PLAN-QELD-PACKAGE.md §2.2, new):

  1. Tidier lectures — a dataset lookup rather than a URL literal, with the URL still one print(url) away since url() returns a plain string.
  2. Backend freedom — the serving arrangement can be reworked as project needs evolve behind one constant interface point in the lectures; a branded host offers that indirection only for host moves, the package's covers key naming, transport and context too.
  3. More than a URLinfo() puts provenance, licence and citation metadata at the call site, which no URL scheme can offer.
  4. No forever-promise — a branded public data host must be served at that name indefinitely and Licensing: record-and-track policy, and the per-dataset inventory for migration #35 gates its promotion on the licensing review; the package makes no such promise, so that gate never comes due unless a public host is someday established after all.

It is a commitment trade, not an effort one — #37 is two actions QuantEcon controls, while qeld Q3 "is not a weekend" — and the technical ground is level: the raw forms serve access-control-allow-origin: * on a direct 200, so nothing consumer-facing waits on a domain.

The operational condition that keeps the deferral reversible: qeld's base URL stays on the raw repo forms and never moves to quantecon.github.io. A custom domain attached later makes GitHub 301-redirect the github.io form — re-creating the redirect-CORS failure for already-shipped wheels — whereas raw URLs are untouched by Pages domain changes. On a raw-link base, reviving #37 is possible at any time for one minor release.

What this PR sweeps

Every document that promised the data.quantecon.org cutover now records the decision instead, so no future review re-proposes it as "the nearest unblocked item":

Where Change
PLAN-QELD-PACKAGE.md D11 added to the decisions table with §2.2 carrying the full reasoning; §1's "host cutover" problem restated as the backend-rework property; §3.2's URL forms marked standing; §8.7's "races this work" retracted
PLAN.md Track Y re-scoped to the qeld plan (Q1–Q7); Phase 4's DNS box struck as deferred with the 2026-08-10 NXDOMAIN measurement preserved for any revisit; rule 5's CORS acceptance criterion restated host-generically; the URL-form row of the open-decisions table marked settled; the #35 promotion-gate note updated
README.md / AGENTS.md the direct URL forms are standing, not interim; qeld.url('<filename>') is the consumer interface once the package ships; carve-outs (prose links, {download}, URL-is-the-lesson) keep the direct form permanently
migration.yml final redefined: every code read resolves through qeld, §4.1 carve-outs terminal on the direct form (comment only; matches qeld Q1)
scripts/render_audit.py, scripts/build_catalog.py dashboard and catalog prose no longer promise the data.quantecon.org sweep — text-only changes, no logic; both scripts compile

Deliberately untouched: the seven manifests whose licence notes say "resolve before promoting data.quantecon.org" — those are conditional statements that remain true (the condition is now simply unscheduled), and rewriting them would churn generated-catalog inputs for no informational gain.

Issue state (recommendations, not done by this PR)

See #37, #15, #65, #66. Related: #35 (the promotion gate this defers), QuantEcon/meta#336 (the convention thread).

🤖 Generated with Claude Code

The programme carried two candidate stable interfaces without choosing:
a branded host (data.quantecon.org, Track Y / #37 / #15) and the qeld
package. Decision taken 2026-08-12: the package is the interface;
the custom domain is deferred indefinitely.

PLAN-QELD-PACKAGE.md gains D11 with the reasoning recorded in full
(section 2.2): tidier lectures, print(url) keeps the URL reachable,
backend freedom behind one constant interface point, info() metadata
at the call site, and no forever-promise of a branded public host --
which also means #35's promotion gate never comes due unscheduled.
The operational condition: qeld's base URL stays on the raw repo forms
and never moves to quantecon.github.io, so the deferral stays
reversible (a custom domain added later 301s the github.io form,
re-creating the redirect-CORS failure for shipped wheels; raw URLs are
untouched).

Consequences swept through the repo so no document re-proposes the
retired plan:

- PLAN.md: Track Y re-scoped to the qeld plan; Phase 4's DNS box
  struck as deferred (measurement preserved for any revisit); rule 5's
  CORS acceptance criterion restated host-generically; the URL-form
  open decision marked settled; the licensing promotion-gate note
  updated
- README.md / AGENTS.md: the direct URL forms are standing, not
  interim; qeld.url() is the consumer interface once the package ships
- migration.yml: `final` redefined as qeld adoption (with the
  section 4.1 carve-outs terminal on the direct form), per Q1
- render_audit.py / build_catalog.py: dashboard and catalog prose no
  longer promise the data.quantecon.org sweep (text only, no logic)

See #37 (stays open as the deferred tracker) and #15 (superseded by
qeld Q6-Q7 adoption). Part of #66's decision record for the qeld plan
(#65).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Records decision D11 that the project will invest in the qeld consumer package as the stable interface, and defer the data.quantecon.org custom domain indefinitely. This updates the repo’s roadmap and user-facing docs so future work doesn’t re-propose the custom-domain cutover as an “unblocked next step”.

Changes:

  • Reframes “final” migration milestone from data.quantecon.org URL cutover to “qeld adoption” (docs + audit dashboard prose).
  • Updates plans and conventions to treat the raw GitHub URL forms as standing (not interim), and documents the “don’t move base URL to quantecon.github.io” operational constraint.
  • Removes/rewrites references that previously promised a future data.quantecon.org swap, keeping linked issues (#37/#15) as deferred/superseded context.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
scripts/render_audit.py Updates dashboard milestone and status-step prose to reflect “qeld adoption” as the terminal step instead of a custom-domain URL cutover.
scripts/build_catalog.py Updates catalog URL-form comment to reflect that direct raw forms are standing and the domain swap was retired in favor of qeld.
README.md Rewrites “Referencing data” guidance to position qeld.url('<filename>') as the stable interface, with direct URL forms as the standing fallback.
PLAN.md Re-scopes Track Y to qeld (Q1–Q7), records the D11 decision, and adjusts Phase 4 to mark DNS/custom-domain work as deferred.
PLAN-QELD-PACKAGE.md Adds D11 and its rationale; updates the package motivation and constraints to match the “qeld replaces host cutover” decision.
migration.yml Redefines final status (comment-only) as “reads resolve through qeld.url()” rather than “reads use data.quantecon.org”.
AGENTS.md Updates repo purpose/conventions to remove the pending host-transition framing and align with the D11 “qeld-first” decision.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@mmcky
mmcky merged commit 990eea6 into main Aug 12, 2026
5 checks passed
@mmcky
mmcky deleted the qeld-replaces-custom-domain branch August 12, 2026 01:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants