Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion spec-0000/SPEC0_versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,16 +90,29 @@ def get_release_dates(package, support_time=plus24):
return releases


def shift_drop_dates(p):
versions = list(p.keys())
for i in range(len(versions) - 1):
p[versions[i]]["drop_date"] = p[versions[i + 1]]["drop_date"]
return p


package_releases = {
"python": {
version: {
"release_date": datetime.strptime(release_date, "%b %d, %Y"),
"drop_date": datetime.strptime(release_date, "%b %d, %Y") + plus36,
"drop_date": datetime.strptime(release_date, "%b %d, %Y") + plus24,
Comment on lines -97 to +104
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe some comments in the code would be nice to make it clear that the drop dates are timed from the release of the next version as it's not clear from anywhere here

}
for version, release_date in py_releases.items()
}
}

# FIXME: This should appear before the above line, but it is temporarily here.
package_releases = {
package: shift_drop_dates(releases)
for package, releases in package_releases.items()
}

package_releases |= {package: get_release_dates(package) for package in core_packages}

# filter all items whose drop_date are in the past
Expand Down
10 changes: 7 additions & 3 deletions spec-0000/chart.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ axisFormat %m / %Y
title Support Window

section python
3.11 : 2022-10-24,2025-10-23
3.12 : 2023-10-02,2026-10-01
3.13 : 2024-10-07,2027-10-07
3.11 : 2022-10-24,2025-10-01
3.12 : 2023-10-02,2026-10-07
3.13 (end date TBD) : 2024-10-07,2026-10-07

section numpy
1.25.0 : 2023-06-17,2025-06-16
Expand Down Expand Up @@ -52,6 +52,7 @@ section networkx
3.3 : 2024-04-06,2026-04-06
3.4 : 2024-10-10,2026-10-10
3.5 : 2025-05-29,2027-05-29
3.6 : 2025-11-24,2027-11-24

section scikit-learn
1.3.0 : 2023-06-30,2025-06-29
Expand Down Expand Up @@ -89,6 +90,8 @@ section xarray
2025.7.0 : 2025-07-03,2027-07-03
2025.8.0 : 2025-08-14,2027-08-14
2025.9.0 : 2025-09-04,2027-09-04
2025.10.0 : 2025-10-06,2027-10-06
2025.11.0 : 2025-11-17,2027-11-17

section ipython
8.8.0 : 2023-01-03,2025-01-02
Expand Down Expand Up @@ -128,6 +131,7 @@ section ipython
9.4.0 : 2025-07-01,2027-07-01
9.5.0 : 2025-08-29,2027-08-29
9.6.0 : 2025-09-29,2027-09-29
9.7.0 : 2025-11-05,2027-11-05

section zarr
2.14.0 : 2023-02-10,2025-02-09
Expand Down
10 changes: 5 additions & 5 deletions spec-0000/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,13 @@ All versions refer to feature releases (i.e., Python 3.8.0, NumPy 1.19.0; not Py

Specifically, we recommend that:

1. Support for Python versions be dropped **3 years** after their initial release.
2. Support for core package dependencies be dropped **2 years** after their initial release.
1. Support for a given version of Python to be dropped **2 years** after the next version of Python is released.
2. Support for a given version of a Python package be dropped **1.5 years** after the next version of that package is released.

{{< admonition note >}}
Core packages may or may not decide to provide bug fix releases during the full 2 year period after release.
Therefore, projects may occasionally want to drop support for core package dependencies earlier than recommended by this SPEC.
For instance, if a newer minimum version of a core package is needed by a project due to a critical bug fix,
Packages may or may not provide bug fix releases during the full support period.
Therefore, projects may occasionally want to drop support for package dependencies earlier than recommended by this SPEC.
For instance, if a newer minimum version of a package is needed by a project due to a critical bug fix,
which is not backported to older versions.
{{< /admonition >}}

Expand Down
10 changes: 6 additions & 4 deletions spec-0000/schedule.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
| matplotlib | 3.10.0 | released Dec 2024 |
| networkx | 3.4 | released Oct 2024 |
| numpy | 2.2.0 | released Dec 2024 |
| python | 3.12 | released Oct 2023 |
| python | 3.12 to 3.13 | released Oct 2023 and Oct 2024 |
| scikit-image | 0.25.0 | released Dec 2024 |
| scikit-learn | 1.6.0 | released Dec 2024 |
| xarray | 2024.10.0 to 2024.11.0 | released Oct 2024 and Nov 2024 |
Expand Down Expand Up @@ -132,6 +132,8 @@

###### Recommend drop support for:

| | | |
| ------ | ---- | ----------------- |
| python | 3.13 | released Oct 2024 |
| | | |
| -------- | ---------------------- | ------------------------------ |
| ipython | 9.7.0 | released Nov 2025 |
| networkx | 3.6 | released Nov 2025 |
| xarray | 2025.10.0 to 2025.11.0 | released Oct 2025 and Nov 2025 |