You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up to the 2026-08-10 upstream sync (#78, merged as 44cf0621). main now carries 23 upstream commits up to d41a821e and sits on upstream 1.10.1, but two merged features are still untagged, so there is no fork identifier that consumer projects can pin to this state.
VERSION.yml currently reads qe_version: qe-v8, with entries 12 (ci-deflake, e2bac528) and 13 (ipynb-attachment-fixes, a34ab190) at tag: null. Cutting qe-v9 over the post-sync main gives book-dp1 / book-dp2 a pinnable identifier that includes both features and the upstream catch-up.
Step 1 — qe-v9 metadata PR
Per the tag procedure in quantecon/README.md, the metadata update lands before the tag so the tagged tree is self-consistent. Both features are already tracked (via #63 and #65), so this PR is small: bump qe_version to qe-v9 in quantecon/VERSION.yml, and set tag: qe-v9 on entries 12 and 13. Nothing to change in UPSTREAM-PRS.yml — the sync already recorded the myst-to-ipynb cherry-pick caveat there. Squash-merge it (feature/doc PRs squash; only sync PRs take a merge commit).
Step 2 — cut and push the tag
Against the main commit produced by Step 1:
git tag qe-v9 <sha> -m "qe-v9: upstream 1.10.1 catch-up, CI deflake, ipynb attachment fixes"
git push origin qe-v9
Step 3 — deploy and test in the lecture books
Point book-dp1 / book-dp2 at qe-v9 using the pinned-clone recipe in quantecon/README.md, and run a full build. The 23 upstream commits are the untested surface here — the fork's own features were verified in #78 (build, lint, format, 72 turbo tasks, plus 58 myst-to-ipynb tests) and all six CI checks were green on node 20/22/24.
Where to concentrate the testing
Three upstream changes land in the notebook execution path, which is exactly what the lecture builds exercise hardest:
Cache writes now go to .ipynb through a tiered cache that still reads the old format as a fallback, so an existing _build/execute should not force a full re-execution. Confirm that on a warm build — a surprise full re-run is the signal something is off.
Path handling around kernel launch; low risk on macOS/Linux, but it touches the same file as the above.
Two further items worth an explicit look:
proof:kind spelling. Upstream added {proof:proof} / {proof:theorem} alongside the legacy prf: forms, and Sync with upstream/main (23 commits) #78 extended the fork's amsthm unnumbered default to cover the new spelling. Lecture sources use prf: today, so this should be a no-op — worth confirming theorem and proof numbering is unchanged in a built book rather than assuming it.
Isolated bun linker. Upstream set linker = "isolated" in bunfig.toml and the repo now declares packageManager: bun@1.3.10. The consumer install recipe uses oven-sh/setup-bun@v2 without a version pin, which resolves to latest — confirm that holds in the book CI, since an older bun would not honour isolated linking.
Done when
qe-v9 metadata PR merged
qe-v9 tag pushed
book-dp1 builds clean against qe-v9
book-dp2 builds clean against qe-v9
Execution cache behaves on a warm build (no unexpected full re-execution)
Theorem/proof numbering unchanged in the built output
Follow-up to the 2026-08-10 upstream sync (#78, merged as
44cf0621).mainnow carries 23 upstream commits up tod41a821eand sits on upstream 1.10.1, but two merged features are still untagged, so there is no fork identifier that consumer projects can pin to this state.VERSION.ymlcurrently readsqe_version: qe-v8, with entries 12 (ci-deflake,e2bac528) and 13 (ipynb-attachment-fixes,a34ab190) attag: null. Cuttingqe-v9over the post-syncmaingives book-dp1 / book-dp2 a pinnable identifier that includes both features and the upstream catch-up.Step 1 — qe-v9 metadata PR
Per the tag procedure in
quantecon/README.md, the metadata update lands before the tag so the tagged tree is self-consistent. Both features are already tracked (via #63 and #65), so this PR is small: bumpqe_versiontoqe-v9inquantecon/VERSION.yml, and settag: qe-v9on entries 12 and 13. Nothing to change inUPSTREAM-PRS.yml— the sync already recorded themyst-to-ipynbcherry-pick caveat there. Squash-merge it (feature/doc PRs squash; only sync PRs take a merge commit).Step 2 — cut and push the tag
Against the
maincommit produced by Step 1:Step 3 — deploy and test in the lecture books
Point book-dp1 / book-dp2 at
qe-v9using the pinned-clone recipe inquantecon/README.md, and run a full build. The 23 upstream commits are the untested surface here — the fork's own features were verified in #78 (build, lint, format, 72 turbo tasks, plus 58myst-to-ipynbtests) and all six CI checks were green on node 20/22/24.Where to concentrate the testing
Three upstream changes land in the notebook execution path, which is exactly what the lecture builds exercise hardest:
.ipynbbuild cache (jupyter-book#2970).ipynbthrough a tiered cache that still reads the old format as a fallback, so an existing_build/executeshould not force a full re-execution. Confirm that on a warm build — a surprise full re-run is the signal something is off.console(jupyter-book#3019)myst-execute/src/kernel.ts. Watch for kernel start failures or changed error surfacing under--execute.Two further items worth an explicit look:
proof:kindspelling. Upstream added{proof:proof}/{proof:theorem}alongside the legacyprf:forms, and Sync with upstream/main (23 commits) #78 extended the fork's amsthm unnumbered default to cover the new spelling. Lecture sources useprf:today, so this should be a no-op — worth confirming theorem and proof numbering is unchanged in a built book rather than assuming it.linker = "isolated"inbunfig.tomland the repo now declarespackageManager: bun@1.3.10. The consumer install recipe usesoven-sh/setup-bun@v2without a version pin, which resolves to latest — confirm that holds in the book CI, since an older bun would not honour isolated linking.Done when
qe-v9tag pushedqe-v9qe-v9