Description
The purpose of this issue is to serve as a brief "umbrella issue" which (a) links out to some key design proposals and other places where design changes and guidance for the 2.0 release are described, and (b) everyone who is interested can subscribe to in order to get updates from maintainers around the 2.0 release (not everyone may want to subscribe to the mailing list). This issue will remain pinned for high visibility.
The tentative release date for the first release candidate of NumPy 2.0 is around 1 Mar 2024, and the final release 6-8 weeks later.
EDIT: this issue is for announcements, please do not start technical discussions here
Design changes / proposals
-
NumPy 2.0 Project Board: NumPy 2.0 Roadmap
-
Main NumPy Enhancement Proposals for 2.0:
-
Slides from the NumPy 2.0 Developer Meeting in April'23: https://github.com/numpy/archive/tree/main/2.0_developer_meeting
Key guidance for users and downstream package authors
- Please review the 2.0 migration guide. And for a more detailed overview of changes, please see the 2.0.0 release notes
- If you rely on the NumPy C API (e.g. via direct use in C/C++, or via Cython code that uses NumPy), please add a
numpy<2.0
requirement in your package's dependency metadata (for releases only, not on your main dev branch). Rationale: the NumPy C ABI will change in 2.0, so any compiled extension modules that rely on NumPy are likely to break, they need to be recompiled. - If you rely on a large API surface from NumPy's Python API, also consider adding the same
numpy<2.0
requirement to your metadata. Rationale: we will do a significant cleanup (see NEP 52), so unless you only use modern/recommended functions and object, your code is likely to require at least some adjustments. - Consider cleaning up your code. E.g. remove
from numpy import *
, or importing any private modules likenumpy.core
. See https://github.com/numpy/numpy/blob/main/numpy/tests/test_public_api.py#L114-L126 for what we consider public/private. If it's not in the NumPy docs or in the list of public modules there, don't use it! - Plan to do a release of your own packages which depend on
numpy
shortly after the first NumPy 2.0 release candidate is released (probably in Dec 2023). Rationale: at that point, you can release packages that will work with both 2.0 and 1.X, and hence your own end users will not be seeing much/any disruption (you wantpip install mypacackage
to continue working on the day NumPy 2.0 is released). - Consider testing against NumPy nightlies in your own CI. We publish those at https://anaconda.org/scientific-python-nightly-wheels/numpy, and have documented that as a stable location at https://numpy.org/devdocs/dev/depending_on_numpy.html. Rationale: this will detect potential issues in your code so you can fix them well ahead of the NumPy 2.0 release.
Compatibility status of downstream packages
See #26191