Skip to content

Updating SPEC 0 for NumPy 2.0 transition #386

@rgommers

Description

@rgommers

The current version of SPEC 0 says that in Q3 2025, NumPy 1.26 can be dropped. This will make NumPy 2.0 the minimum supported version just over a year after its release in June 2024. Given that the transition throughout the ecosystem to support NumPy 2.0 at all isn't yet complete even for well-known open source packages (xref numpy/numpy#26191 e.g., Catboost became available only today, PySpark, Basemap, scikit-sparse and sagemaker-python-sdk don't yet have a compatible release), this is way too early.

The problem is to some extent the same as gh-190, which links to the example of Matplotlib 1.5 to 2.0 transition where there was a larger gap in the release cycle. There is an additional problem though, in that the NumPy 2.0 transition was quite a bit larger and longer than the Matplotlib one, and it requires a wider support window. As a result of the slow availability of open source packages, many companies and institutions are still blocked from upgrading to NumPy 2.0 today. New releases of other projects appearing that already start dropping numpy 1.x support is very much undesirable, it makes the puzzle of what package versions go together too complex.

The window for regular NumPy releases is roughly 2 years into the past, 1.5 years into the future - i.e., a 3.5 year wide sliding window. For NumPy 2.0, it was not possible to do the "into the future" part; the first releases with support for NumPy 2.0 from other projects that depend on NumPy's C A APIs started being made in April 2024. The sequence of chained releases to add support for NumPy 2.0 is very long. So I think we're going to need a 2 year window forward from that at least, so NumPy 1.26.4 support should not be dropped before April 2026.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions