PyWavelets / pywt

PyWavelets - Wavelet Transforms in Python
http://pywavelets.readthedocs.org
MIT License
1.97k stars 460 forks source link

BLD: Test editable installations for PyWavelets in CI #702

Closed agriyakhetarpal closed 2 months ago

agriyakhetarpal commented 4 months ago

Closes #700. This PR introduces a flag in the Linux matrix setup to run an editable installation of PyWavelets and run the test suite with pytest.

I can rebase this branch and revisit this PR after https://github.com/mesonbuild/meson-python/pull/569 is merged and meson-python==0.16.0 is out on PyPI – it shall fix the failing test as noted in https://github.com/PyWavelets/pywt/issues/700#issuecomment-1959439533.

rgommers commented 4 months ago

Thanks! I'll get your other PR merged first, since there is some overlap. And then you can rebase this on top (CI will also run automatically once you have a PR merged).

agriyakhetarpal commented 4 months ago

Thanks! I rebased on top of the changes from the previous PR. The failure is expected, of course.

agriyakhetarpal commented 2 months ago

With meson-python v0.16.0 out, this is now ready for review and the test suite against editable installations is working. It has been added for the Linux job for now – we can add it to the macOS job too if needed, but I think testing in just one place is perfectly fine as well. I rebased the branches and have revised the commit history, it should be easier to review/squash.

Edit: put out a request for review, didn't realise I forgot to do that :)

agriyakhetarpal commented 2 months ago

From the workflow run: https://github.com/PyWavelets/pywt/actions/runs/8723177022/job/23930800559?pr=702#step:4:446

this line shows that the wheel being built is an editable one, but the wheel does not have the editable keyword after the version and before the ABI tag – and I think this is a bug, it is not conformant with PEP 660. This is not the case with setuptools and other build-backends (just verified with both a Hatch-based pure Python project and a setuptools + pybind11 compiled one). I'll file this on the meson-python issue tracker.

rgommers commented 2 months ago

It has been added for the Linux job for now – we can add it to the macOS job too if needed, but I think testing in just one place is perfectly fine as well.

Agreed, a single job is fine.

agriyakhetarpal commented 2 months ago

Thank you for the review, @rgommers! I have addressed all requested changes and rebased (only because they were minor). Let's hope that CI passes as usual.