Tags: pyodide/pyodide-build
Tags
pyodide-build version 0.36.0 - released on 2026/06/30 Fixed - Fixed several bugs in the cross-build-environment (xbuildenv) lifecycle [#378](#378): - A Python-version marker mismatch on an already-installed xbuildenv will now refresh the host packages. - Installing via `DEFAULT_CROSS_BUILD_ENV_URL` is now treated like an explicit `--url` install, so it no longer bakes a mangled, URL-derived version into the generated package index. - `pyodide xbuildenv use` no longer raises `FileExistsError` when the `xbuildenv` symlink is dangling (its target was removed); the stale symlink is now cleaned up first. - A failure during a later installation step no longer deletes a pre-existing, valid cached xbuildenv. - Fixed a hang when a recipe `build/script` or `build/post` ends by exiting the shell itself (e.g. `exit 0`). The build no longer blocks forever waiting for an environment dump that never runs; the previous environment is kept instead. [#383](#383) - Fixed per-package build variables (`PKGDIR`, `PKG_VERSION`, `DISTDIR`, ...) leaking into the cached build-environment dict, which caused later packages in a sequential `build-recipes` run to see the previous package's values. [#383](#383) - Fixed `find_matching_wheel` raising `RuntimeError("Found multiple matching wheels")` for a single file. [#381](#381) - Fixed `pyodide clean recipes` incorrectly cleaning packages tagged `always`. [#381](#381) - Fixed a bug where boolean and non-string values in pyproject.toml crashes pyodide CLI when loading config values [#381](#381) - Sanitize `Content-Disposition: filename=...` header values to prevent path traversal. [#382](#382) - Fixed build constraints not being applied when using `uv` as the installer by setting `UV_BUILD_CONSTRAINT` alongside `PIP_CONSTRAINT` and `PIP_BUILD_CONSTRAINT`. [#389](#389) - Fixed a dead-code control flow in `pyodide skeleton pypi` where a package whose new release ships only wheels (while the recipe used an sdist) would raise an exception rather than updating to the wheel. [#384](#384) - `skeleton`: fixed incorrect predictable URLs sdists for `.zip`-style sdists and packages with non-normalised names (such as `ruamel.yaml`). [#384](#384) - Fixed three bugs in `pyodide venv`: `pyodide venv --no-download` / `--never-download` being silently ignored, versioned pip scripts (e.g., `pip3.12`) being renamed to `pip3`, and a failed `pyodide venv` invocation deleting a pre-existing destination directory. [#377](#377) Changed - Fixed build-time scripts of unisolated packages (like `f2py` and `numpy-config` from NumPy) not being available on `PATH` during builds. [#21](#21) - `oldest-supported-numpy` is now explicitly rejected when encountered as a build-time dependency. It is deprecated since NumPy 2.0, and packages that still list it should migrate to a direct `numpy` dependency. [#392](#392)
pyodide-build version 0.35.0 released on 2026/06/09 Added: - `CrossBuildEnvReleaseSpec` now has a `published_at` field containing the UTC timestamp when the release was published on GitHub (ISO 8601 format). This is exposed in `pyodide xbuildenv search --all` and `pyodide xbuildenv search --all --json`. [#349](#349) - `pyodide xbuildenv search` and `pyodide xbuildenv install` now support `--nightly` and `--debug` flags to search and install stable-debug, nightly, and nightly-debug cross-build environments respectively. [#350](#350), [#354](#371) - `pyodide build` now accepts `-v`/`--verbose` flags (stackable twice up to `-vv`) to increase build verbosity. At `-v`, installer commands and backend hook invocations are shown. At `-vv`, the package installers (`uv`/`pip`) additionally receive a `-v` flag for detailed package resolution output. [#363](#363)
Auto install and activate emscripten (#293) * Auto install emscripten when it is not in the system * Remove unnecessary env variables from the config * Cleanup unused function * Fix unittest * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * changelog * Fix test * Only update variables that are changes by emsdk --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Fix pip wrapper script Python 3.14-compatible (#295) * Fix path calculation in Python3.14 * Fix path calculation * use os.path instead of pathlib * Fix readlink * Handle unlink failure * More error handling * Update ci for venv test * Fix quote * Fix pip.conf * Update changelog * Update changelog
PreviousNext