seung-lab / DracoPy

Python wrapper for Google's Draco mesh compression library.
Apache License 2.0
87 stars 26 forks source link

Numpy 2 support #52

Closed normanrz closed 2 weeks ago

normanrz commented 3 months ago

Numpy 2 has been released a few weeks ago. While most of the Python API remains the same, there has been a breaking change to the ABI. That means that all libraries that are compiled against the Numpy C API need to be recompiled. Once compiled against numpy 2, compiled wheels will be compatible with both numpy 1.x and 2.

I was wondering if were possible to publish new wheels that are compiled against numpy 2? I am not sure how that would work with the oldest-supported-numpy dependency.

william-silversmith commented 3 months ago

Hi Norman, I should get this recompiled. I just forgot to do it. I've done it for a bunch of other libraries already.

normanrz commented 3 months ago

That sounds great! Thanks.

If it is of any help, we hacked together a Github Actions workflows that creates new wheels with a patched numpy version. https://github.com/scalableminds/build-wheels/blob/main/.github/workflows/dracopy.yaml

william-silversmith commented 3 months ago

Thank you! I'll have to check that out. It looks like bitrot has broken our cmake install in GHA.

normanrz commented 3 months ago

Sorry, this is actually the code we ended up using: https://github.com/scalableminds/build-wheels/blob/568d32b435a813c5329ac4c23117e9c299e3d82f/.github/workflows/dracopy.yaml GHA has cmake pre-installed. We could just remove the install-cmake action.

william-silversmith commented 3 months ago

I've gotten it to build, except on Python 3.12 due to a cmake incompatibility with scikit-build I presume. It's using an outdated cmake version.

william-silversmith commented 2 weeks ago

I managed to get it to build on all platforms except aarch64. I had to build the MacOS section locally though.