Numpy 2.0 was released a few days ago. This new major version breaks the compatibility for both API and ABI. This resulted in crashes when loading AT. A fast fix was brought immediately by restricting AT to numpy < 2.0. This PR brings a longer term solution by fully supporting both numpy 1.x and numpy 2.0.
Both python code and C code are updated in a compatible way to support both versions. However numpy 2.0 is available only for python >= 3.9. So the build process is now different depending on the python version:
for python 3.7 and python 3.8, the build process is unchanged, requiring the "oldest-supported-numpy" package to ensure that the binaries are compatible with all following versions,
for python >= 3.9, we follow the new rule defined here: we build with numpy 2.0, which ensured that the binary is compatible back to version 1.23. So the run-time spec for python >= 3.9 has been increased from 1.16.6 to 1.23.5
It also appeared that the action for building wheels was also failing. It has been upgraded
And finally, a workaround is implemented for a library bug on linux, allowing to run the full Matlab tests on the 3 platforms
Numpy 2.0 was released a few days ago. This new major version breaks the compatibility for both API and ABI. This resulted in crashes when loading AT. A fast fix was brought immediately by restricting AT to numpy < 2.0. This PR brings a longer term solution by fully supporting both numpy 1.x and numpy 2.0.
Both python code and C code are updated in a compatible way to support both versions. However numpy 2.0 is available only for python >= 3.9. So the build process is now different depending on the python version:
It also appeared that the action for building wheels was also failing. It has been upgraded
And finally, a workaround is implemented for a library bug on linux, allowing to run the full Matlab tests on the 3 platforms