Description
Description
The meson-python
build backend does not seem to conform entirely with the specification noted by PEP 660, and currently builds Python packages in editable mode but without the editable keyword.
The wheel built after the compilation proceeds is named as follows:
Created wheel for PyWavelets: filename=pywavelets-1.7.0.dev0-cp312-cp312-linux_x86_64.whl size=<...> sha256=<...>
MWE / steps to reproduce
For the purpose of this bug report, a reproducer is as follows:
git clone https://github.com/PyWavelets/pywt
pip install "numpy>=2.0.0b1" "meson-python>=0.16.0" "Cython>=3.0.4"
sudo apt-get install ninja-build # or pip install ninja
pip install -e . --no-build-isolation
Any other Python packages using meson
as the underlying build system should also produce the same output.
Expected behaviour
The build backend should append the editable
keyword at the get_requires_for_build_editable
stage when the wheel gets created, therefore renaming the wheel to have this keyword before the ABI tag and after the version of the package, i.e., the wheel should be named as follows:
Created wheel for PyWavelets: filename=pywavelets-1.7.0.dev0.editable-cp312-cp312-linux_x86_64.whl size=<...> sha256=<...>
Other available and popular build backends – such as setuptools
for compiled extensions and hatchling
for pure Python projects correctly add the editable
keyword.
Relevant logs or additional context
I noticed this when trying to test out the recent editable installations improvements (#569) that came out with the new 0.16.0
release. xref: PyWavelets/pywt#702