-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pin Numpy < 2 in requirements #10893
Conversation
We have compiled extensions that are built against the Numpy C API. The Numpy transition guide for developers of downstream packages[^1] encourages us to put in this pin until we have wheels built against the newer version, which is not expected to be fully ABI compatible (but extensions built against Numpy 2 _should_ work with older Numpys). Note that this won't prevent package managers from resolving _older_ versions of Qiskit (which don't have the pin) along with Numpy 2, but there's not a vast amount we can do about that now. [^1]: numpy/numpy#24300
One or more of the the following people are requested to review this:
|
Pull Request Test Coverage Report for Build 6277399015
💛 - Coveralls |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is the right thing to do, considering we know we're not numpy 2.0 ready yet until we close #10889. That being said we don't actually have a build time dependency on numpy, the ffi is manually defined in rust-numpy and we build against that rust interface. If there are big breaking changes in the API though I expect rust-numpy will need to be updated so we can interoperate with it. Either way, leaving the cap in place proactively until we know for sure qiskit works with numpy 2.0 is prudent
Yeah, my hope is to be ready as soon after the release of the 2.0rc as possible, and to revert this pin as soon as we are. |
Summary
We have compiled extensions that are built against the Numpy C API. The Numpy transition guide for developers of downstream packages1 encourages us to put in this pin until we have wheels built against the newer version, which is not expected to be fully ABI compatible (but extensions built against Numpy 2 should work with older Numpys).
Note that this won't prevent package managers from resolving older versions of Qiskit (which don't have the pin) along with Numpy 2, but there's not a vast amount we can do about that now.
Summary
Details and comments
Footnotes
https://github.com/numpy/numpy/issues/24300 ↩