epics-base / p4p

Python bindings for the PVAccess network client and server.
BSD 3-Clause "New" or "Revised" License
27 stars 38 forks source link

Fixed build for Python 3.12 and added to CI #126

Closed DominicOram closed 7 months ago

DominicOram commented 1 year ago

This fixes the build for Python 3.12. Note that I haven't done extensive testing of p4p in 3.12, just got the build working.

Main change was that get_numpy_include_dirs is now replaced with numpy.get_include. These have been replaced with a preference for the newer version.

Also found that SETUPTOOLS_USE_DISTUTILS=stdlib was breaking 3.12 builds. Removing it seemed to cause no build issues but if this is wrong please let me know.

DominicOram commented 1 year ago

@mdavidsaver - anything I can do to help get this merged?

mdavidsaver commented 1 year ago

If you split the workflow change as a separate commit. I think the changes to setup.py and makehelper.py can go in now.

Merging the GHA workflow part of the change requires first adding py3.12 builds for the dependent modules epicscorelibs and pvxslibs. I you are willing to wait, I hope to have time to do this soon-ish. Alternately, I would not say "no" if you are willing to help :)

DominicOram commented 1 year ago

Thanks @mdavidsaver. I had a quick look at them both but I think my knowledge of python build systems is insufficient to fix them quickly. I'm happy to wait for a full solution, thanks!

DominicOram commented 7 months ago

I believe the changes to setup.py and makehelper.py have been done in https://github.com/mdavidsaver/p4p/commit/a03400e4f4e89202d45991eb37c0258b6e2497dc, apologies I didn't get round to tidying this PR. The GHA actions is still waiting on the other modules and I stand by not having the time to look at them myself right now so happy to close this PR.