Releases: pyodide/pyodide-build
0.30.5
v0.30.4
version 0.30.4
- 2025/05/20
-
Fixed compatibility with
virtualenv
20.31 and later. The Pyodide virtual environment viapyodide venv
no longer seeds
wheel
, i.e., the--wheel
/--no-wheel
options are not available anymore.
#208 -
The default cross-build metadata URL was changed to https://pyodide.github.io/pyodide/api/pyodide-cross-build-environments.json in order to circumvent rate limits imposed by GitHub. It remains overridable by setting the
PYODIDE_CROSS_BUILD_ENV_METADATA_URL
environment variable.
#206
Full range of commits: 0.30.3...0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
version 0.30.0
- 2025/04/08
We are excited to announce the release of pyodide-build v0.30.0.
Full CHANGELOG: pyodide/pyodide-build@a4b038c
/CHANGELOG.md
Added
-
Added basic support for uv.
uv tool install pyodide-cli --with pyodide-build
, or
uvx --from pyodide-cli --with pyodide-build pyodide --help
, or usingpyodide-build
inuv
-managed virtual environments will now work.
#132 -
pyodide build
now takes an additional--xbuildenv-path
argument and corresponding
equivalentPYODIDE_XBUILDENV_PATH
environment variable to either use an existing
cross-build environment or create one at the specified path. This means that users
can usepyodide xbuildenv install <...> --path
to install a cross-build environment
somewhere and reuse this withpyodide build
.
#158 -
Added a new config variable
xbuildenv_path
that can be left in the[tool.pyodide.build]
section inpyproject.toml
and retrieved throughpyodide config get xbuildenv_path
.
Thepyodide xbuildenv
andpyodide build
commands will setup/use cross-build environments
at this path if one isn't specified as a CLI argument or unless overridden through the
PYODIDE_XBUILDENV_PATH
environment variable.
#158 -
Added support for building without a wheel without build isolation:
pyodide build
now accepts
the--no-isolation
/-n
and/or--skip-dependency-check
/-x
flags to customise the wheel
building behaviour, similar topypa/build
.
#152
Changed
-
The Rust toolchain version has been updated to
nightly-2025-01-18
.
#103 -
Pyodide cross-build environments will now be installed in the user cache directory by default,
which is<home>/.cache
or XDG cache in Linux systems, and/Users/<user>/Library/Caches
in macOS.
#148 -
Removed
cmake
dependency from the package.
The Pyodide build system now uses thecmake
package specified in thepyproject.toml
file
of the target package.
#141
PRs that made it to this release
- Suppress error when the .whl format is already registered by @hoodmane in #99
- Add
FORCE_COLOR: 3
to GitHub Actions workflows by @agriyakhetarpal in #102 - MAIN Subclass recipes more by @ryanking13 in #79
skeleton
: predictable URLs for distributions via the PyPI JSON API by @agriyakhetarpal in #101- Add lower bound for typer by @hoodmane in #106
- Fix typo in shared library builder by @ryanking13 in #110
- Don't restore sys.platform in venv.py by @hoodmane in #108
- Bump default Rust toolchain to
nightly-2025-02-01
by @agriyakhetarpal in #103 - Add io shim to unblock Pyodide 0.27.3 release by @hoodmane in #112
- Build with wasm exception handling by @hoodmane in #81
- Fix test with ANSI colour sequences + line breaks by @agriyakhetarpal in #105
- TST Reset cache after test by @ryanking13 in #118
- MAINT Factor out load_meta_yaml and store_meta_yaml in skeleton.py by @hoodmane in #121
skeleton
: Handle universal wheel case when generating predictable URLs for distributions by @agriyakhetarpal in #125- Make
pyodide venv
more compatible with standardvirtualenv
args + add tests by @agriyakhetarpal in #117 - Add a cli command to pin a recipe by @hoodmane in #122
- Skip integration tests for the regular tests job by @agriyakhetarpal in #130
- Virtual environment: handle pip updates by @hoodmane in #129
- Try again if rmtree raises
OsError: Directory not empty
by @hoodmane in #123 - Add testing for macOS by @agriyakhetarpal in #131
- Make needs_rebuild aware of wheel tags by @hoodmane in #134
- Set wheel tag of cpython_module to cp312-cp312-pyodide_2025_0_wasm32 by @hoodmane in #133
- Apply PIP_CONSTRAINT while installing dependencies by @hoodmane in #135
- Add earlier check for wheel version mismatch by @hoodmane in #137
- Better Python version mismatch errors by @hoodmane in #142
- MAINT Unvendor tests at the lockfile creation step by @ryanking13 in #116
- Add initial support for uv by @ryanking13 in #132
- Add --maintainer and --gh-maintainer flags to pyodide skeleton pypi by @hoodmane in #145
- Set CMAKE_EXECUTABLE env variable to make scikit-build use cmake wrapper by @ryanking13 in #141
- Silence
python -m wheel {pack, unpack}
at unvendoring stage by @ryanking13 in #151 - FIX Pass retain_test_pattern when unvendoring by @ryanking13 in #153
- Install xbuildenv into the cache directory by default by @ryanking13 in #148
- Better check for write access when determining default xbuildenv path by @agriyakhetarpal in #154
- Switch wasm-sjlj for legacysjlj by @hoodmane in #155
- Typer>=0.12.4 supports
Union
types by @agriyakhetarpal in #164 - Miscellaneous workflow updates by @agriyakhetarpal in #165
- Fix libgeos compilation that's failing on the
main
branch by @agriyakhetarpal in #166 - Test against a minimum version of Pyodide, and document how to update it by @agriyakhetarpal in #167
- Fix two problems with pyodide venv by @hoodmane in #161
- Update auditwheel-emscripten by @hoodmane in #171
- Relax
pyodide-cli
constraint by @agriyakhetarpal in #174 - Add support for building without isolation by @agriyakhetarpal in #152
- Modify runtime path when PYODIDE_ABI_VERSION > 2025 by @ryanking13 in #173
- Make pyodide venv work from a uv-managed python virtual environment by @hoodmane in #144
- Revert #144 for now by @agriyakhetarpal in #181
- Support custom xbuildenv paths, and add xbuildenv path to
ConfigManager
by @agriyakhetarpal in #158
Full Changelog: v0.29.3...v0.30.0
v0.29.3
version 0.29.3
– 2025/02/04
Added
- Added new configuration variable
default_cross_build_env_url
. #85 - Added a new recipe key
requirement.constraint
to set the package-level constraints. #97
What's Changed
- Build numpy from src in integration test by @ryanking13 in #65
- Bump the actions group with 2 updates by @dependabot in #69
- Bump the actions group with 2 updates by @dependabot in #71
- Use Emscripten's
llvm-readobj
by default by @agriyakhetarpal in #73 - MAINT Subclass recipe builders by @ryanking13 in #36
- Fix handling cpython_module type recipe by @ryanking13 in #74
- Bump the actions group with 2 updates by @dependabot in #75
- Integration tests: fix
orjson
's builds with Maturin 1.8, and bump to NumPy v2 by @agriyakhetarpal in #76 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #78
- Bump actions/upload-artifact from 4.5.0 to 4.6.0 in the actions group by @dependabot in #80
- Move CrossBuildEnvManager._download to common.download_and_unpack_achive by @hoodmane in #82
- Move ensure_rust_toolchain to buildall by @hoodmane in #83
- Split config manager into
ConfigManager
andCrossBuildEnvConfigManager
by @ryanking13 in #91 - Add a new configuration variable for setting default xbuildenv url by @ryanking13 in #85
- MAINT Rename recipe-related scripts by @ryanking13 in #92
- Add pinned key to opt recipe out of autoupdates by @hoodmane in #89
- Bump the actions group with 4 updates by @dependabot in #95
- Add pyodide skeleton enable and disable commands by @hoodmane in #94
- Save symlinks directory when building with recipe builder by @hoodmane in #96
- Bump actions/setup-python from 5.3.0 to 5.4.0 in the actions group by @dependabot in #98
- Add
requirement.constraint
key to support package-wise constraints by @ryanking13 in #97
New Contributors
Full Changelog: v0.29.2...v0.29.3
v0.29.2
version 0.29.2
– 2024/11/29
Fixed
- Fixed
pyodide venv
command not loading the shared libraries correctly, resulting in the package load failure.
This bug was introduced in version 0.28. #67
PRs that made it into this release
- Add config variable for setting index url for build requirements by @ryanking13 in #64
- Ruff comprehensions and performance by @cclauss in #66
- Fix pyodide venv after removing shared_library key by @ryanking13 in #67
New Contributors
Full Changelog: v0.29.1...v0.29.2
v0.29.1
version 0.29.1
– 2024/11/27
Added
- Add
skip_emscripten_version_check
flag and SKIP_EMSCRIPTEN_VERSION_CHECK environment
variable to skip emscripten version check.
#53 - Set the
EM_PKG_CONFIG_PATH
environment variable used by emscripten/pkg-config
to discover dependencies
#52
Changed
-
Source tar files are now extracted with python's data filter
#52 -
The
pyodide build
command will now raise an error if the local Python version has been changed,
after the cross-build environment has been set up.
#62
PRs that made it into this release
- Add option to skip emscripten version check by @ryanking13 in #53
- Properly parse the content disposition filename by @juntyr in #46
- Validate Python version when initializing xbuildenv by @ryanking13 in #62
- Set EM_PKG_CONFIG_PATH to correctly configure pkg-config by @swnf in #52
New Contributors
Full Changelog: v0.29.0...v0.29.1
v0.29.0
version 0.29.0
– 2024/09/19
Added
- The
pyodide xbuildenv search
command now accepts a--json
flag to output the search results in JSON format that is machine-readable. The design for the regular tabular output has been improved. (#28)
Changed
-
The
pyodide skeleton pypi --update
command and the--update-patched
variant now validate the version and the source checksum when updating a package's recipe (#27) -
pyo3_config_file
is no longer available in thepyodide config
command. Pyodide now setsPYO3_CROSS_PYTHON_VERSION
,PYO3_CROSS_LIB_DIR
to specify the cross-compilation environment
for PyO3. (#19)
PRs that made it into this release
- Infer python version from Makefile.envs in PyO3 by @ryanking13 in #19
- Bump
actions/download-artifact
, pin hashes for all actions, add Dependabot config by @dependabot in #22 - chore: convert all relative imports to absolute imports by @agriyakhetarpal in #29
- Include version and checksum validation when updating packages by @agriyakhetarpal in #27
- Do not require downloading xbuildenv when updating package recipes by @agriyakhetarpal in #30
- Add a JSON output for
pyodide xbuildenv search
, better tabular output by @agriyakhetarpal in #28 - chore: rework CI and release configuration by @agriyakhetarpal in #33
Full changelog: v0.28.0...v0.29.0