SIGN IN SIGN UP

Load pyodide packages by a path it can parse, and notice when it fails (#2517)

Pyodide takes a wheel's package name from the last "/"-separated part of
what it is handed, up to the first "-". Windows separators are not
separators to it, so a native path arrives as one long name. Under a
directory like grist-desktop-0.3.14-win-x64 every wheel resolves to the
same name, they collide, and all but the first are discarded as
duplicates. Nothing installs, and the data engine then fails on "import
sortedcontainers" the moment a document is opened.

Forward slashes parse correctly, and Windows opens them happily.

loadPackage resolves even when it loaded nothing, reporting trouble only
through an errorCallback nobody passed. So also compare what loaded
against what was asked for, and fail there rather than much later from
inside the data engine.

Verified on windows under github runner conditions: an unmodified
grist-desktop release cannot open a document, and opens documents and
evaluates formulas with this change.
P
Paul Fitzpatrick committed
df36cedf05afa3fab951daccd7e866dcafc9c843
Parent: 81682d2
Committed by GitHub <noreply@github.com> on 8/13/2026, 8:05:59 PM