Skip to content

fix(ci): stopgap the JupyterLite piplite index wheel-overwrite bug#559

Open
petercorke wants to merge 1 commit into
mainfrom
fix/jupyterlite-wheel-fetch-stopgap
Open

fix(ci): stopgap the JupyterLite piplite index wheel-overwrite bug#559
petercorke wants to merge 1 commit into
mainfrom
fix/jupyterlite-wheel-fetch-stopgap

Conversation

@petercorke

Copy link
Copy Markdown
Owner

Summary

  • The live "Try it Now" JupyterLite notebook's first cell fails with ValueError: Can't find a pure Python 3 wheel for 'roboticstoolbox-python'.
  • Root cause is upstream in jupyterlite-pyodide-kernel (confirmed present in both the pinned 0.6.1 and latest 0.7.1): its all.json index generator keys entries by (name, version) and overwrites rather than accumulates. Since this repo's releases carry wasm wheels for more than one CPython version (cp312 and cp313, both tagged the same release version), only the alphabetically-last (cp313) survived in the generated index — but the pinned kernel needs cp312.
  • Narrows ci.yml's gh release download --pattern from *pyodide* to *cp312*pyodide*, so only the wheel this deployment actually needs reaches docs/lite/pypi/, sidestepping the upstream bug entirely.
  • Deliberately a stopgap (documented in tech-debt.md) — the real fix is a genuine py3-none-any pure-Python wheel on PyPI, queued behind the RNE correctness work (rne.md).

Test plan

  • Confirmed the narrowed pattern matches only the cp312 asset against the real v1.3.1 release assets
  • docs-build CI job on this PR exercises the real fetch step end-to-end — will confirm all.json now contains the cp312 wheel

🤖 Generated with Claude Code

The live "Try it Now" notebook's first cell was failing with
ValueError: Can't find a pure Python 3 wheel for 'roboticstoolbox-python'.

Root cause is upstream in jupyterlite-pyodide-kernel (confirmed present
in both the pinned 0.6.1 and latest 0.7.1): its all.json index generator
keys entries by (name, version) and overwrites rather than accumulates,
so when a release carries wasm wheels for more than one CPython version
(this repo's do -- cp312 and cp313, both tagged 1.3.1), only the
alphabetically-last survives in the generated index. The deployment's
pinned kernel needs cp312; the index only had cp313 after the ci.yml
fetch step (--pattern '*pyodide*') grabbed both.

Narrows the fetch pattern to '*cp312*pyodide*' so only the wheel this
deployment actually needs reaches docs/lite/pypi/, sidestepping the
upstream bug rather than depending on it getting fixed.

Deliberately a stopgap, not the real fix -- see tech-debt.md. The real
fix is a genuine py3-none-any pure-Python wheel on PyPI, which Pyodide's
micropip would resolve automatically with none of this custom
GitHub-release-asset/piplite-index machinery at all. That's queued
behind the RNE correctness work (rne.md).

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

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (b111856) to head (695af7b).

Additional details and impacted files
@@          Coverage Diff          @@
##            main    #559   +/-   ##
=====================================
  Coverage   0.00%   0.00%           
=====================================
  Files        142     142           
  Lines      13694   13694           
=====================================
  Misses     13694   13694           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

1 participant