Skip to content

Q2: Pyodide is 3.14 and the pin is 3.15, so how do we handle the delta #2

Description

@tamnd

Pyodide 314 is CPython 3.14. The pin is 3.15. Every tier 0 experiment therefore runs one minor version behind the material, and sometimes that changes the bytecode the reader sees. A reader who is told the answer is one thing and watches their browser print another loses trust in the whole project, and they are right to.

Exit criterion. A version delta mechanism in the notebook lint, and a documented policy in the authoring guide.

The work

  • A per cell annotation declaring whether an observation is version sensitive
  • A CI check that runs every tier 0 cell on both 3.14 and 3.15 natively and flags any whose normalized output differs
  • A visible note on differing cells saying what the reader is seeing and what 3.15 does instead
  • A policy for what to do when a lesson's central observation is one of the differing ones, since a note is not enough in that case
  • Track Pyodide's 3.15 release and bump as soon as it exists

Note

The check is worth building even after Pyodide catches up, because the same machinery is what tells us which cells are version sensitive when the pin moves to 3.16.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/siteThe book site, WASM export, hosting and accessibilitykind/open-questionA question that must be answered by measurement before work depends on itpriority/p0Blocks the current milestonestatus/in-progressSomebody is working on this now

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions