NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1241 most downloaded on PyPI
The Python build backend for Meson projects
Last release 3 days ago
01 Oct 2026
Ships fairly regularly
a new release about every 3 months
Nearly every release is documented
notes for 31 of 31 stable releases
1 version withdrawn
withdrawn after publishing
5 years old
33 releases · first in 2021
One column per quarter.
Do not remove absolute build RPATH entries, unless pointing within the build directory. Fixes an issue when using system compilers in a conda environm
Add support for adding RPATH entries specified with install_rpath argument to Meson functions that accept it.
install_rpathAdd support for adding RPATH entries specified with install_rpath argument to Meson functions that accept it.
Add support for removing build RPATH entries added by Meson to allow executing parts of the project from the build directory.
Fix corner cases in handling RPATH entries and relocation of shared libraries distributed as part of Python packages.
Daniele Nicolodi, Mike Taves, Nathan Goldbaum, Ralf Gommers --- 25-09-2026.
Restore compatibility with Python interpreters not implementing PEP 3149.
Restore compatibility with Python interpreters not implementing PEP 3149.
Daniele Nicolodi, Ralf Gommers --- 11-09-2026.
Add support for the stable ABI for free-threaded interpreters ( abi3t ).
abi3t).editable-verbose in pyproject.toml..start files (PEP 829) instead of .pth files to implement editableAdd support for the stable ABI for free-threaded interpreters (abi3t).
Add support for the stable ABI extension modules' platform-specific filename suffixes introduced in Python 3.15.
Allow specifying editable-verbose in pyproject.toml.
Improve the default behavior of editable installs by capturing and reporting build errors when rebuilding.
Use .start files (PEP 829) instead of .pth files to implement editable wheels for Python 3.15 and later.
From this release onwards, SSH keys used to sign release tags.
Daniele Nicolodi, Michał Górny, Ralf Gommers --- 07-09-2026.
Add support for targeting the Android platform.
Add support for targeting the Android platform.
Daniele Nicolodi, Malcolm Smith, Ralf Gommers --- 10-06-2026.
Development-related extras were moved to dependency groups.
strip binary is now included in synthesized cross files.Drop Python 3.8 support.
Development-related extras were moved to dependency groups.
Add support for targeting the iOS platform.
The strip binary is now included in synthesized cross files.
Documentation improvements: add more examples for specific use cases, and a contributing guide.
Use trusted publishing with digital attestations to upload release artifacts to PyPI.
Andrew Annex, Daniele Nicolodi, Michał Górny, Ralf Gommers, Russell Keith-Magee, Tobias Diez --- 14-01-2026.
Bump minimum required Meson version to 0.64.0.
pyproject-metadata version to 0.9.0 to enablepackaging version to 23.2. pyproject-metadatapackaging but fails to record themeson-python allows fixing possible dependency problemsmeson-python depend on a very recentpyproject-metadata release.packaging version 24.2 or later.licence and license-files as dynamicpyproject.toml to extract the package license and licenseproject() call inmeson.build. This requires Meson version 1.6.0 or later.RPATH handling on SunOS.tool.meson-python.allow-windows-internal-shared-libs project setting.Update tests to work with newly released pyproject-metadata 0.9.0.
pyproject-metadata 0.9.0.Update tests to work with newly released pyproject-metadata 0.9.0.
Fix tests to work when not executed in a git work tree.
Daniele Nicolodi --- 23-10-2024.
Refuse to build wheels targeting the limited API and free-threaded CPython: the free-threaded CPython build does not support the limited API yet.
pyproject.toml.pyproject.toml for the generated files in the source distributionabi3 wheel tag for PyPy when building wheels targeting theImportError when the package rebuild fails when importing an.gitignore and .hgignore files to build directory if it is empty.install_subdir() of missing directories.Refuse to build wheels targeting the limited API and free-threaded CPython: the free-threaded CPython build does not support the limited API yet.
Always use UTF-8 encoding for writing Meson native and cross files. Always use UTF-8 encoding for reading read Meson introspection data and pyproject.toml.
Do not include uncommitted changes when creating source distributions. Previously, uncommitted changes to files under version control were included, but not untracked files. There was no strong use case for this behavior and it was too surprising to keep it.
Make source distribution reproducible: use the modification time of pyproject.toml for the generated files in the source distribution archives.
Disable the abi3 wheel tag for PyPy when building wheels targeting the limited API: PyPy supports the limited API but not the stable ABI.
Raise ImportError when the package rebuild fails when importing an editable install.
Fix the wheel platform tag for GraalPy.
Add .gitignore and .hgignore files to build directory if it is empty.
Allow install_subdir() of missing directories.
Christian Clauss, Daniele Nicolodi, Jonathan J. Helmus, Leo Singer, Loïc Estève, Michael Simacek, Ralf Gommers, Simon McVittie --- 19-10-2024.
Correctly detect a wheel shipping shared libraries as being platform dependent also when it does not ship compiled executables or Python extension mod
$ARCHFLAGS environment-arch flags.colorama on Windows.exclude_dirs and exclude_files arguments passedinstall_subdir() Meson function in editable installs too.pkgutil.iter_packages() work properly for modules loadedcustom_target() Meson function installing aEnable compression for wheel files. The may result in several times smaller wheels.
distutils, allowing to remove thesetuptools on Python 3.12 or later.patchelf on Linux. The patchelfpatchelf executable is not find on the $PATH. This avoidsmeson setup was run twice during the build processpatchelf is required.meson executable to use for the build$MESON environment variable or the meson[tool.meson-python] in pyproject.toml.RPATH handling when the build RPATH points tobuilddir config-setting to build-dir. Forbuildir config-setting remainsDo not run meson install to build a wheel. This was unnecessary as files are added to the wheel from the build and source directories. This does not a
meson install to build a wheel. This was unnecessarymeson installmeson-python itself.--skip-subprojects when specified for the meson install command.exclude_directories andexclude_files arguments to Meson install_subdir() functionpyproject.toml does not contain a version field andversion is not declared dynamic, raise an error instead ofmeson.build.objc and objcpp compilers to the cross file generated$ARCHFLAGS is set.Fix system name in cross file generated when using $ARCHFLAGS .
$ARCHFLAGS.null Meson install tags.Fix system name in cross file generated when using $ARCHFLAGS.
Fix handling of null Meson install tags.
Charles Brunet, Daniele Nicolodi --- 22-06-2023.
Fix regression in cross-compilation via $ARCHFLAGS on macOS where the cross file was written in the build directory before it was created, resulting i
$ARCHFLAGS on macOS where the$_PYTHON_HOST_PLATFORM when cross-compiling via$ARCHFLAGS on macOS.--quiet option when invoking meson install. The installationmeson-python implementation and are generallypurelib and platlib wheel locations is detected.Add support for editable installs.
Add support for editable installs.
Adjust the default build options passed to meson setup.
Make sure that the directory where the wheel or sdist build artifacts are created exists. Fixes building with PDM.
Fix the specification of the C++ compiler for cross-compilation with $ARCHFLAGS on macOS.
Pass the --reconfigure option to meson setup if and only if the specified build directory exists and is a valid Meson build directory.
Pass the --no-rebuild option to meson install.
Allow to select the files to be included in the wheel via Meson install tags passing the --tags option to meson install via pyproject.toml or config settings.
Do not use the meson compile indirection to build the project, except on Windows, where it is required to setup the Visual Studio environment.
Do not add ninja to the build dependencies if $NINJA is set but it does not point to a ninja executable with the required minimum version.
Verify at run time that Meson satisfies the minimum required version.
Place native and cross files in the build directory instead of in the source directory.
Drop the typing-extensions package dependency.
Add dependency on setuptools on Python 3.12 and later. This fixes build error due to Meson depending on the distutils standard library module removed in Python 3.12.
Bump the required pyproject-metadata version to 0.7.1.
Allows some more cross-compilation setups by not checking extension modules filename suffixes against the suffixes accepted by the current interpreter.
Raise an error when a file that would be installed by Meson cannot be mapped to a wheel location.
Raise an error when a package is split between platlib and purelib.
Do not generate a warning when pyproject.toml does not contain a project section and Python package metadata is derived from meson.build.
Improve reporting of pyproject.toml validation errors.
Fix validation of tool specific options in pyproject.toml. In particular, allows to specify an incomplete set of options in the tool.meson-python.args table.
Daniele Nicolodi, Doron Behar, Eli Schwartz, Filipe Laíns, Lars Pastewka, Luigi Giugliano, Matthias Köppe, Peter Urban, Ralf Gommers, Stefan van der Walt, Thomas Li --- 18-04-2023.
Nothing published for this version
Fix regression where the $MACOSX_DEPLOYMENT_TARGET environment variable was accidentally renamed to $MACOS_DEPLOYMENT_TARGET.
Fix regression where the $MACOSX_DEPLOYMENT_TARGET environment variable was accidentally renamed to $MACOS_DEPLOYMENT_TARGET.
Filipe Laíns, Stefan van der Walt --- 17-02-2023.
Require the typing_extensions package for Python < 3.10 rather than for Python < 3.8 only.
Require the typing_extensions package for Python < 3.10 rather than for Python < 3.8 only.
Emit an error message and raise SystemExit on expected errors.
Revise error messages for consistency.
Support setuptools-style macOS cross compilation via $ARCHFLAGS.
Allow to overwrite macOS platform tag via $_PYTHON_HOST_PLATFORM.
Include an hint with the most similar known option names in the error message emitted when an unknown config setting is encountered.
Daniele Nicolodi, Filipe Laíns, Henry Schreiner, Matthias Köppe, Thomas A Caswell --- 22-12-2022.
Project moved to the mesonbuild organization.
Project moved to the mesonbuild organization.
Determine wheel tags by introspecting the Python interpreter.
Allow users to pass options directly to Meson via the dist, setup, compile, and install entries in the tools.meson-python.args table in pyproject.toml, or via the dist-args, setup-args, compile-args, and install-args config settings.
Use the system ninja if possible. Return ninja as a build dependency otherwise.
Include files generated by mesonadd_dist_script in the sdist.
Use tomllib on Python 3.11 or later.
Drop the wheel package dependency.
Fix bug where the entry_points.txt file was not generated.
Fix bug where Cygwin Python extensions were not being noticed.
Ben Greiner, Daniele Nicolodi, Filipe Laíns, Henry Schreiner, Matthias Köppe, Ralf Gommers, Sam Thursfield, Thomas Li --- 21-11-2022.
Ignore the minor version on macOS 11 or later, to match the behavior of pypa/packaging.
Ignore the minor version on macOS 11 or later, to match the behavior of pypa/packaging.
Filipe Laíns, Ralf Gommers --- 05-10-2022.
More fixes on ABI tag detection.
More fixes on ABI tag detection.
Fix incorrect tag on 32-bit Python running on a x86_64 host.
Fix sdist permissions.
Fix incorrect PyPy tags.
Fix install_subdirs not being included in wheels.
Take MACOSX_DEPLOYMENT_TARGET into account for the platform tag.
Don't set the rpath on binaries if unneeded.
Eli Schwartz, Filipe Laíns, Matthias Köppe, Peyton Murray, Ralf Gommers, Thomas Kluyver, Thomas Li --- 29-09-2022.
Fix UnboundLocalError in tag detection code.
Fix UnboundLocalError in tag detection code.
Filipe Laíns, Ralf Gommers --- 28-07-2022.
Fix sometimes the incorrect ABI tags being generated.
Fix sometimes the incorrect ABI tags being generated.
Add workaround for macOS 11 and 12 installations that are missing a minor version in the platform string.
Filipe Laíns --- 26-07-2022.
Fix the wrong Python and ABI tags being generated in Meson 0.63.0.
Fix the wrong Python and ABI tags being generated in Meson 0.63.0.
Fix project license not being included in the project metadata.
Filipe Laíns, Ralf Gommers --- 22-07-2022.
Error out when running in an unsupported interpreter.
Project re-licensed to MIT.
Error out when running in an unsupported interpreter.
Fix slightly broken Debian heuristics.
Update pep621 dependency to pyproject-metadata.
Filipe Laíns, Ralf Gommers, Thomas A Caswell --- 21-06-2022.
Improvements in dependency detections.
Improvements in dependency detections.
Include uncommited changes in sdists.
Filipe Laíns --- 26-05-2022.
Set sane default arguments for release builds.
Set sane default arguments for release builds.
Filipe Laíns --- 06-05-2022.
Initial cross-platform support.
Initial cross-platform support.
Bundling libraries is still only supported on Linux.
Add initial documentation.
The build directory is now located in the project source.
Filipe Laíns, Rafael Silva --- 23-03-2022.
Fix getting the project version dynamically from Meson.
Fix getting the project version dynamically from Meson.
Filipe Laíns --- 26-02-2022.
Select the correct ABI and Python tags.
Select the correct ABI and Python tags.
Force Meson to use the correct Python executable.
Replace auditwheel with in-house vendoring mechanism.
Filipe Laíns --- 24-01-2022.
- Fix auditwheel not being run. Filipe Laíns --- 12-11-2021.
Fix auditwheel not being run.
Filipe Laíns --- 12-11-2021.
Fix minor compatibility issue with Python < 3.9.
Fix minor compatibility issue with Python < 3.9.
Filipe Laíns --- 28-10-2021.
- Initial release. Filipe Laíns --- 28-10-2021.
Initial release.
Filipe Laíns --- 28-10-2021.
Initial release.
Filipe Laíns — 28-10-2021.
On this page
Changelog
0.22.0
0.21.1
0.21.0
0.20.0
0.19.0
0.18.0
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.0
0.9.0
0.8.1
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →