Changelog#
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.34.5] - 2026/05/20#
Added#
CrossBuildEnvReleaseSpecnow has apublished_atfield containing the UTC timestamp when the release was published on GitHub (ISO 8601 format). This is exposed inpyodide xbuildenv search --allandpyodide xbuildenv search --all --json. #349pyodide xbuildenv searchandpyodide xbuildenv installnow support--nightlyand--debugflags to search and install nightly and nightly-debug cross-build environments respectively. #350
[0.34.4] - 2026/05/15#
Added#
We now show better error message when
pyodide buildfails to install build dependencies. #346
[0.34.3] - 2026/04/30#
Fixed#
Fixed compatibility issue with newer pypa/build >= 1.4.4 #345
[0.34.2] - 2026/04/29#
Fixed#
[0.34.1] - 2026/04/03#
Added#
pyodide configexposes variablesemsdk_dirandemscripten_dirthat point to the Emscripten SDK installation directory and Emscripten installation directory respectively in the xbuildenv (these are only available after Emscripten gets installed into the xbuildenv via thepyodide xbuildenv install-emscriptencommand). #321, #326
Changed#
Platform name for the Pyodide wheel is now
pyemscripteninstead ofpyodide, following the PEP 783 standard. If you want to use the old platform name, you can set theUSE_LEGACY_PLATFORMenvironment variable to1. #319
[0.34.0] - 2026/03/31#
Added#
pyodide xbuildenv install can skip eager installation, and cross-build packages are installed on first build-time use.
Changed#
Fixed#
--enable-new-dtagslinker flag is now filtered out. #317
[0.33.0] - 2026/02/26#
Changed#
Emscripten will now be auto installed when running
pyodide buildandpyodide build-recipesif the host system does not have emscripten installed. #293
Fixed#
Fixed
pyodide venvnot working in Windows + Python 3.14. #299
[0.32.1] - 2026/02/20#
Added#
Added
--skip-cross-build-packagesflag (andPYODIDE_SKIP_CROSS_BUILD_PACKAGESenv var) topyodide xbuildenv install, allowing users to skip installing cross-build packages (numpy, scipy, cffi, pycparser) into the host site-packages. This is useful in locked-down environments where packages need to be pre-approved, and the user is building packages that don’t depend on these at cross-compile time.Added support for
PIP_BUILD_CONSTRAINTenvironment variable for pip 26.2+ compatibility. The build system now prioritizesPIP_BUILD_CONSTRAINToverPIP_CONSTRAINTwhen determining build-time constraints, while maintaining backward compatibility.
Changed#
The feature to build packages with dependencies is now opt-in feature. It needs to be enabled by installing pyodide-build with
pip install pyodide-build[resolve]. #277
Fixed#
Fixed
pyodide venvnot working in Windows with virtualenv 20.38. #298
[0.32.0] - 2026/01/27#
Changed#
Dropped
typerdependency in favor ofclick. #287
[0.31.2] - 2026/01/26#
Added#
Added
--cleanoption to clean up temporary build files after building a package withpyodide build-recipes. #282
[0.31.1] - 2026/01/05#
Fixed#
Fixed an issue where pip inside the Pyodide venv would not correctly handle the arguments with spaces. #281
[0.31.0] - 2026/01/05#
Added#
pyodide venvnow works in Windows. It only works with Pyodide 0.29.1 and later. #274
Removed#
Removed
pyodide create-zipfilesubcommand. This command is was used only for building pyodide runtime and not for building packages. #276
Fixed#
[0.30.9] - 2025/11/11#
Added#
Added
pyodide clean recipes, a CLI command that deletes build files for chosen packages or tags. #254
[0.30.8] - 2025/10/22#
[0.30.7] - 2025/08/18#
[0.30.6] - 2025/08/16#
pyodide confignow exposesrust_emscripten_target_url. #225
[0.30.5] - 2025/06/04#
[0.30.4] - 2025/05/20#
Fixed compatibility with
virtualenv20.31 and later. The Pyodide virtual environment viapyodide venvno longer seedswheel, i.e., the--wheel/--no-wheeloptions are not available anymore. #208The default cross-build metadata URL was changed to https://pyodide.github.io/pyodide/api/pyodide-cross-build-environments.json to circumvent rate limits imposed by GitHub. It remains overridable by setting the
PYODIDE_CROSS_BUILD_ENV_METADATA_URLenvironment variable. #206
[0.30.3] - 2025/05/17#
Added
interpreterandpacakge_indexto the variables available viapyodide config get. #199
[0.30.2] - 2025/05/05#
[0.30.1] - 2025/04/25#
Added#
Fixed#
pyodide venvnow works in uv-managed environments. See issue #143. #185
[0.30.0] - 2025/04/08#
Added#
Added basic support for uv.
uv tool install pyodide-cli --with pyodide-build, oruvx --from pyodide-cli --with pyodide-build pyodide --help, or usingpyodide-buildinuv-managed virtual environments will now work. #132pyodide buildnow takes an additional--xbuildenv-pathargument and corresponding equivalentPYODIDE_XBUILDENV_PATHenvironment variable to either use an existing cross-build environment or create one at the specified path. This means that users can usepyodide xbuildenv install <...> --pathto install a cross-build environment somewhere and reuse this withpyodide build. #158Added a new config variable
xbuildenv_paththat can be left in the[tool.pyodide.build]section inpyproject.tomland retrieved throughpyodide config get xbuildenv_path. Thepyodide xbuildenvandpyodide buildcommands will setup/use cross-build environments at this path if one isn’t specified as a CLI argument or unless overridden through thePYODIDE_XBUILDENV_PATHenvironment variable. #158Added support for building without a wheel without build isolation:
pyodide buildno accepts the--no-isolation/-nand/or--skip-dependency-check/-xflags to customise the wheel building behaviour, similar topypa/build. #152
Changed#
The Rust toolchain version has been updated to
nightly-2025-01-18. #103Pyodide cross-build environments will now be installed in the user cache directory by default, which is
<home>/.cacheor XDG cache in Linux systems, and/Users/<user>/Library/Cachesin macOS. #148Removed
cmakedependency from the package. The Pyodide build system now uses thecmakepackage specified in thepyproject.tomlfile of the target package. #141
Fixed#
Fixed Pyodide venv
sys_platformmarker evaluation with pip >= 25. #108
[0.29.3] - 2025/02/04#
Added#
Added new configuration variable
default_cross_build_env_url. #85Added a new recipe key
requirement.constraintto set the package-level constraints. #97The
pyodide venvcommand now supports morevirtualenvcommand-line flags to customise the virtual environment creation behaviour (experimental) #117
[0.29.2] - 2024/11/29#
Fixed#
Fixed
pyodide venvcommand not loading the shared libraries correctly, resulting in the package load failure. This bug was introduced in version 0.28. #67
[0.29.1] - 2024/11/27#
Added#
Changed#
Source tar files are now extracted with python’s data filter #52
The
pyodide buildcommand will now raise an error if the local Python version has been changed, after the cross-build environment has been set up. #62
[0.29.0] - 2024/09/19#
Added#
The
pyodide xbuildenv searchcommand now accepts a--jsonflag 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 --updatecommand and the--update-patchedvariant now validate the version and the source checksum when updating a package’s recipe. #27pyo3_config_fileis no longer available inpyodide configcommand. Pyodide now setsPYO3_CROSS_PYTHON_VERSION,PYO3_CROSS_LIB_DIRto specify the cross compilation environment for PyO3. #19
[0.28.0] - 2024/08/14#
pyodide xbuildenvsubcommand is now publicly available. #15
[0.27.3] - 2024/07/17#
It is now possible to override
_f2c_fixes.pyfile, with_f2c_fixes_wrappervariable. #8
[0.27.2] - 2024/07/11#
Changed#
[0.27.1] - 2024/06/28#
Changed#
ported f2c_fixes patch from https://github.com/pyodide/pyodide/pull/4822
[0.27.0] - 2024/06/18#
pyodide-build is now developed under https://github.com/pyodide/pyodide-build.