Pyodide ships CPython 3.14. The pin is 3.15. Everything about handling that gap is built and documented, and #2 is closed on it: cells that differ carry a note, nbversion compare checks the notes against what the two interpreters actually printed, and the versions job in CI is gating.
What is left is not ours to schedule. When Pyodide ships 3.15 the widgets and the WASM islands should move to it, and most of the notes in the lessons stop being needed.
The work
Why this is cheap when it happens
nbversion compare fails on a note whose cell no longer differs, so the day the runtime moves the check produces the exact list of paragraphs to delete. That was the argument for building the stale half of it rather than only the undeclared half.
Nothing blocks on this. The lessons are correct on both versions today, which is the point of the notes.
Pyodide ships CPython 3.14. The pin is 3.15. Everything about handling that gap is built and documented, and #2 is closed on it: cells that differ carry a note,
nbversion comparechecks the notes against what the two interpreters actually printed, and theversionsjob in CI is gating.What is left is not ours to schedule. When Pyodide ships 3.15 the widgets and the WASM islands should move to it, and most of the notes in the lessons stop being needed.
The work
just versionsagainst the new pair and delete the notes that have become stale, which the check will name for usWhy this is cheap when it happens
nbversion comparefails on a note whose cell no longer differs, so the day the runtime moves the check produces the exact list of paragraphs to delete. That was the argument for building the stale half of it rather than only the undeclared half.Nothing blocks on this. The lessons are correct on both versions today, which is the point of the notes.