liberfa / pyerfa

Python bindings for ERFA routines
https://pyerfa.readthedocs.io
BSD 3-Clause "New" or "Revised" License
34 stars 24 forks source link

Fix PyPy compilation #120

Closed astrofrog closed 1 year ago

astrofrog commented 1 year ago

When compiling with PyPy, it looks like _typeobject is already defined by PyPy itself - this causes the conda-forge build to fail since it includes PyPy builds: https://github.com/conda-forge/pyerfa-feedstock/pull/31/checks?check_run_id=17819660419

This PR does the simple fix of making sure we don't redefine _typeobject if we are using PyPy which should be harmless for CPython.

I'm also adding PyPy wheels here to see if they are fast enough to build as this would be a good regression test in itself and would also be nice to provide PyPy wheels.

astrofrog commented 1 year ago

I've reverted the fix to check if the wheel builds fail for PyPy.

astrofrog commented 1 year ago

The PyPy wheel builds fail without the patch here, let's make sure they pass now.

astrofrog commented 1 year ago

For now I've made it so that we only build wheels for PyPy versions where there are Numpy wheels as I think that is a reasonable compromise (otherwise we have to build Numpy from source on PyPy and we need to add a bit of complexity to get that to work). Then we match what Numpy does and we also ensure that PyERFA does build with PyPy without going over the top.

astrofrog commented 1 year ago

Ok I think this is fine now and ready for review.

Once/if this is merged, I would suggest tagging a new bugfix release so that we can fix the conda build (https://github.com/conda-forge/pyerfa-feedstock/pull/31)

mhvk commented 1 year ago

p.s. I'm happy to have a pyerfa 2.0.1.1 with as main CHANGES.rst entry that we ensured things build for PyPy.

mhvk commented 1 year ago

Great! With two approvals, I'll go ahead and merge this, and make a new release that also includes a fix for #123 (which is quite serious)