Skip to content

Correct the Pyodide ceiling claim - #1463

Merged
neuromechanist merged 1 commit into
devfrom
fix/correct-pyodide-ceiling-memory
Sep 21, 2026
Merged

neuromechanist merged 1 commit into
devfrom
fix/correct-pyodide-ceiling-memory

Conversation

@neuromechanist

Copy link
Copy Markdown
Contributor

The .memory entry and the eegprep-lean contract, both merged earlier today, said that every
dependency floor is a ceiling in the browser. That is only true of compiled packages, and I should
not have generalized it.

The correction

The test is whether the package publishes a pure-Python wheel, not whether Pyodide bundles it.
A py3-none-any wheel means micropip fetches any version straight from PyPI and the bundled build
goes unused, so the floor costs a download and nothing more.

Pyodide 0.29.5 universal wheel on PyPI floor is a ceiling
scipy 1.14.1 none yes
numpy 2.2.5 none yes
matplotlib 3.8.4 none yes
h5py 3.13.0 none yes
threadpoolctl 3.5.0 py3-none-any no

Why the mistake is kept rather than quietly deleted

The memory cited threadpoolctl>=3.6.0 on the epic branch as a live broken install. It is not one.
Being bundled by Pyodide made it look identical to the scipy case, and that is the instructive
part: presence in pyodide-lock.json says nothing about whether another version is reachable.

The entry now states what was wrong and why it looked right, and the superseded claim is removed
rather than left beside the correction, per the directory's own rules. It also records that
over-applying the rule has its own cost, which is false alarms on pure-Python packages and a guard
nobody trusts.

The corresponding test fix is sccn/eegprep#402, and sccn/eegprep#400 carries the same correction
as a comment.

Both the memory entry and the eegprep-lean contract said every
dependency floor is a ceiling in the browser. That is only true of
compiled packages.

The test is whether the package publishes a pure-Python wheel, not
whether Pyodide bundles it. A py3-none-any wheel means micropip fetches
any version straight from PyPI and the bundled build goes unused. numpy,
scipy, h5py and matplotlib publish none and are genuinely capped;
threadpoolctl is bundled but pure Python and is not.

The memory cited threadpoolctl>=3.6.0 on the epic branch as a live
broken install, which was wrong. Kept as the instructive part rather
than quietly deleted: being bundled made it look identical to the scipy
case, and presence in pyodide-lock.json says nothing about whether
another version is reachable. Over-applying the rule has its own cost,
which is false alarms and a guard nobody trusts.

Superseded claims removed rather than left beside the correction, per
the directory's own rules. Test fix is sccn/eegprep#402.
@neuromechanist
neuromechanist merged commit 7e9b858 into dev Sep 21, 2026
12 checks passed
@neuromechanist
neuromechanist deleted the fix/correct-pyodide-ceiling-memory branch September 21, 2026 06:19

This branch was successfully deployed

1 active deployment
npm — 5af75147 Deployed Sep 21, 2026 by neuromechanist via publish #2764
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