Skip to content
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

SPEC 0: Soften explicit drop schedule. #273

Merged
merged 8 commits into from
Oct 9, 2023
Merged
Show file tree
Hide file tree
Changes from 4 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
60 changes: 37 additions & 23 deletions spec-0000/SPEC0_versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,31 +124,45 @@ def get_release_dates(package, support_time=plus24):

# Print drop schedule

rel = {}
for name, releases in package_releases.items():
rel |= {
" ".join([name, str(ver)]): [dates["release_date"], dates["drop_date"]]
for ver, dates in releases.items()
}

data = []
for k, versions in package_releases.items():
for v, dates in versions.items():
data.append(
(
k,
v,
pd.to_datetime(dates["release_date"]),
pd.to_datetime(dates["drop_date"]),
)
)

print("Saving drop schedule to schedule.md")
with open("schedule.md", "w") as fh:
current_quarter = None
df = pd.DataFrame(data, columns=["package", "version", "release", "drop"])

# Sort by drop date
rel = dict(sorted(rel.items(), key=lambda item: item[1][1]))
df["quarter"] = df["drop"].dt.to_period("Q")

for package, dates in rel.items():
qt = pd.to_datetime(dates[1]).to_period("Q")
dq = df.set_index(["quarter", "package"]).sort_index()

# If drop date is in a new quarter, write out a heading
if qt != current_quarter:
if current_quarter != None:
fh.write("\n")
fh.write(f'{str(qt).replace("Q", " – Quarter ")}:\n\n')
current_quarter = qt

fh.write(
f"- {dates[1].strftime('%d %b %Y')}: drop {package} (initially released on {dates[0].strftime('%b %d, %Y')})\n"
)
print("Saving drop schedule to schedule.md")
with open("schedule.md", "w") as fh:
for quarter in sorted(set(dq.index.get_level_values(0))):
fh.write("#### " + str(quarter).replace("Q", " - Quarter ") + ":\n\n")
fh.write("Recommend drop support for:\n\n")
Carreau marked this conversation as resolved.
Show resolved Hide resolved

fh.write("| | | |\n")
fh.write("|----|----|----|\n")

sub = dq.loc[quarter]
for package in sorted(set(sub.index.get_level_values(0))):
vers = sub.loc[[package]]["version"]
minv, maxv = min(vers), max(vers)
rels = sub.loc[[package]]["release"]
rel_min, rel_max = min(rels), max(rels)
version_range = str(minv) if minv == maxv else f"{minv} to {maxv}"
rel_range = (
str(rel_min.strftime("%b %Y"))
if rel_min == rel_max
else f"{rel_min.strftime('%b %Y')} and {rel_max.strftime('%b %Y')}"
)
fh.write(f"|{package:<15}|{version_range:<19}|released {rel_range}|\n")
fh.write("\n")
16 changes: 9 additions & 7 deletions spec-0000/chart.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ section numpy
1.23.0 : 2022-06-22,2024-06-21
1.24.0 : 2022-12-18,2024-12-17
1.25.0 : 2023-06-17,2025-06-16
1.26.0 : 2023-09-16,2025-09-15

section scipy
1.8.0 : 2022-02-05,2024-02-05
Expand All @@ -25,32 +26,31 @@ section matplotlib
3.5.0 : 2021-11-16,2023-11-16
3.6.0 : 2022-09-16,2024-09-15
3.7.0 : 2023-02-13,2025-02-12
3.8.0 : 2023-09-15,2025-09-14

section pandas
1.3.0 : 2021-07-02,2023-07-02
1.4.0 : 2022-01-22,2024-01-22
1.5.0 : 2022-09-19,2024-09-18
2.0.0 : 2023-04-03,2025-04-02
2.1.0 : 2023-08-30,2025-08-29

section scikit-image
0.19.0 : 2021-12-03,2023-12-03
0.20.0 : 2023-02-28,2025-02-27
0.21.0 : 2023-06-02,2025-06-01

section networkx
2.6 : 2021-07-08,2023-07-08
2.7 : 2022-02-28,2024-02-28
2.8 : 2022-04-09,2024-04-08
3.0 : 2023-01-08,2025-01-07
3.1 : 2023-04-04,2025-04-03

section scikit-learn
1.0 : 2021-09-24,2023-09-24
1.1.0 : 2022-05-12,2024-05-11
1.2.0 : 2022-12-08,2024-12-07
1.3.0 : 2023-06-30,2025-06-29

section xarray
0.19.0 : 2021-07-23,2023-07-23
0.20.0 : 2021-11-02,2023-11-02
0.21.0 : 2022-01-28,2024-01-28
2022.3.0 : 2022-03-02,2024-03-01
Expand All @@ -65,11 +65,11 @@ section xarray
2023.4.0 : 2023-04-14,2025-04-13
2023.5.0 : 2023-05-19,2025-05-18
2023.6.0 : 2023-06-23,2025-06-22
2023.7.0 : 2023-07-17,2025-07-16
2023.8.0 : 2023-08-20,2025-08-19
2023.9.0 : 2023-09-26,2025-09-25

section ipython
7.26.0 : 2021-08-01,2023-08-01
7.27.0 : 2021-08-27,2023-08-27
7.28.0 : 2021-09-25,2023-09-25
7.29.0 : 2021-10-30,2023-10-30
7.30.0 : 2021-11-26,2023-11-26
7.31.0 : 2022-01-05,2024-01-05
Expand All @@ -91,3 +91,5 @@ section ipython
8.12.0 : 2023-03-30,2025-03-29
8.13.0 : 2023-04-28,2025-04-27
8.14.0 : 2023-06-02,2025-06-01
8.15.0 : 2023-09-01,2025-08-31
8.16.0 : 2023-09-29,2025-09-28
213 changes: 115 additions & 98 deletions spec-0000/schedule.md
Original file line number Diff line number Diff line change
@@ -1,98 +1,115 @@
2023 – Quarter 3:

- 02 Jul 2023: drop pandas 1.3.0 (initially released on Jul 02, 2021)
- 08 Jul 2023: drop networkx 2.6 (initially released on Jul 08, 2021)
- 23 Jul 2023: drop xarray 0.19.0 (initially released on Jul 23, 2021)
- 01 Aug 2023: drop ipython 7.26.0 (initially released on Aug 01, 2021)
- 27 Aug 2023: drop ipython 7.27.0 (initially released on Aug 27, 2021)
- 24 Sep 2023: drop scikit-learn 1.0 (initially released on Sep 24, 2021)
- 25 Sep 2023: drop ipython 7.28.0 (initially released on Sep 25, 2021)

2023 – Quarter 4:

- 05 Oct 2023: drop python 3.9 (initially released on Oct 05, 2020)
- 30 Oct 2023: drop ipython 7.29.0 (initially released on Oct 30, 2021)
- 02 Nov 2023: drop xarray 0.20.0 (initially released on Nov 02, 2021)
- 16 Nov 2023: drop matplotlib 3.5.0 (initially released on Nov 16, 2021)
- 26 Nov 2023: drop ipython 7.30.0 (initially released on Nov 26, 2021)
- 03 Dec 2023: drop scikit-image 0.19.0 (initially released on Dec 03, 2021)
- 31 Dec 2023: drop numpy 1.22.0 (initially released on Dec 31, 2021)

2024 – Quarter 1:

- 05 Jan 2024: drop ipython 7.31.0 (initially released on Jan 05, 2022)
- 12 Jan 2024: drop ipython 8.0.0 (initially released on Jan 12, 2022)
- 22 Jan 2024: drop pandas 1.4.0 (initially released on Jan 22, 2022)
- 28 Jan 2024: drop xarray 0.21.0 (initially released on Jan 28, 2022)
- 05 Feb 2024: drop scipy 1.8.0 (initially released on Feb 05, 2022)
- 25 Feb 2024: drop ipython 7.32.0 (initially released on Feb 25, 2022)
- 25 Feb 2024: drop ipython 8.1.0 (initially released on Feb 25, 2022)
- 28 Feb 2024: drop networkx 2.7 (initially released on Feb 28, 2022)
- 01 Mar 2024: drop xarray 2022.3.0 (initially released on Mar 02, 2022)
- 26 Mar 2024: drop ipython 8.2.0 (initially released on Mar 27, 2022)

2024 – Quarter 2:

- 08 Apr 2024: drop networkx 2.8 (initially released on Apr 09, 2022)
- 28 Apr 2024: drop ipython 7.33.0 (initially released on Apr 29, 2022)
- 28 Apr 2024: drop ipython 8.3.0 (initially released on Apr 29, 2022)
- 11 May 2024: drop scikit-learn 1.1.0 (initially released on May 12, 2022)
- 27 May 2024: drop ipython 7.34.0 (initially released on May 28, 2022)
- 27 May 2024: drop ipython 8.4.0 (initially released on May 28, 2022)
- 21 Jun 2024: drop numpy 1.23.0 (initially released on Jun 22, 2022)

2024 – Quarter 3:

- 21 Jul 2024: drop xarray 2022.6.0 (initially released on Jul 22, 2022)
- 28 Jul 2024: drop scipy 1.9.0 (initially released on Jul 29, 2022)
- 05 Sep 2024: drop ipython 8.5.0 (initially released on Sep 06, 2022)
- 15 Sep 2024: drop matplotlib 3.6.0 (initially released on Sep 16, 2022)
- 18 Sep 2024: drop pandas 1.5.0 (initially released on Sep 19, 2022)
- 28 Sep 2024: drop xarray 2022.9.0 (initially released on Sep 29, 2022)

2024 – Quarter 4:

- 03 Oct 2024: drop python 3.10 (initially released on Oct 04, 2021)
- 12 Oct 2024: drop xarray 2022.10.0 (initially released on Oct 13, 2022)
- 29 Oct 2024: drop ipython 8.6.0 (initially released on Oct 30, 2022)
- 03 Nov 2024: drop xarray 2022.11.0 (initially released on Nov 04, 2022)
- 27 Nov 2024: drop ipython 8.7.0 (initially released on Nov 28, 2022)
- 01 Dec 2024: drop xarray 2022.12.0 (initially released on Dec 02, 2022)
- 07 Dec 2024: drop scikit-learn 1.2.0 (initially released on Dec 08, 2022)
- 17 Dec 2024: drop numpy 1.24.0 (initially released on Dec 18, 2022)

2025 – Quarter 1:

- 02 Jan 2025: drop ipython 8.8.0 (initially released on Jan 03, 2023)
- 02 Jan 2025: drop scipy 1.10.0 (initially released on Jan 03, 2023)
- 07 Jan 2025: drop networkx 3.0 (initially released on Jan 08, 2023)
- 17 Jan 2025: drop xarray 2023.1.0 (initially released on Jan 18, 2023)
- 26 Jan 2025: drop ipython 8.9.0 (initially released on Jan 27, 2023)
- 06 Feb 2025: drop xarray 2023.2.0 (initially released on Feb 07, 2023)
- 09 Feb 2025: drop ipython 8.10.0 (initially released on Feb 10, 2023)
- 12 Feb 2025: drop matplotlib 3.7.0 (initially released on Feb 13, 2023)
- 27 Feb 2025: drop ipython 8.11.0 (initially released on Feb 28, 2023)
- 27 Feb 2025: drop scikit-image 0.20.0 (initially released on Feb 28, 2023)
- 21 Mar 2025: drop xarray 2023.3.0 (initially released on Mar 22, 2023)
- 29 Mar 2025: drop ipython 8.12.0 (initially released on Mar 30, 2023)

2025 – Quarter 2:

- 02 Apr 2025: drop pandas 2.0.0 (initially released on Apr 03, 2023)
- 03 Apr 2025: drop networkx 3.1 (initially released on Apr 04, 2023)
- 13 Apr 2025: drop xarray 2023.4.0 (initially released on Apr 14, 2023)
- 27 Apr 2025: drop ipython 8.13.0 (initially released on Apr 28, 2023)
- 18 May 2025: drop xarray 2023.5.0 (initially released on May 19, 2023)
- 01 Jun 2025: drop scikit-image 0.21.0 (initially released on Jun 02, 2023)
- 01 Jun 2025: drop ipython 8.14.0 (initially released on Jun 02, 2023)
- 16 Jun 2025: drop numpy 1.25.0 (initially released on Jun 17, 2023)
- 22 Jun 2025: drop xarray 2023.6.0 (initially released on Jun 23, 2023)
- 24 Jun 2025: drop scipy 1.11.0 (initially released on Jun 25, 2023)

2025 – Quarter 4:

- 23 Oct 2025: drop python 3.11 (initially released on Oct 24, 2022)

2026 – Quarter 4:

- 01 Oct 2026: drop python 3.12 (initially released on Oct 02, 2023)
#### 2023 - Quarter 4:
Copy link
Member

Choose a reason for hiding this comment

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

I feel that the previous quarter could be kept around for a bit of an overlap.


Recommend drop support for:
Copy link
Member

Choose a reason for hiding this comment

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

The rendered version could maybe benefit from a tiny bit of different formatting, either leaving more space between this line and the table itself, or making this line with a different typeface (italic should be enough, no need to make it a heading).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, spacing need css change, as prettify reformat the markdown anyway.

Copy link
Member

Choose a reason for hiding this comment

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

what about #273 (comment) then?

Copy link
Member

Choose a reason for hiding this comment

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

You can put the markdown inside of

<!-- prettier-ignore-start -->

and

<!-- prettier-ignore-end -->

to prevent prettier from messing with your formatting.

Feel free to let @alphapapa know if you would like any css updates to the theme. You are also welcome to just make a PR if you prefer.


| | | |
| ------------ | ---------------- | ------------------------------ |
| ipython | 7.29.0 to 7.30.0 | released Oct 2021 and Nov 2021 |
| matplotlib | 3.5.0 | released Nov 2021 |
| numpy | 1.22.0 | released Dec 2021 |
| python | 3.9 | released Oct 2020 |
| scikit-image | 0.19.0 | released Dec 2021 |
| xarray | 0.20.0 | released Nov 2021 |

#### 2024 - Quarter 1:

Recommend drop support for:

| | | |
| -------- | ------------------ | ------------------------------ |
| ipython | 7.31.0 to 8.2.0 | released Jan 2022 and Mar 2022 |
| networkx | 2.7 | released Feb 2022 |
| pandas | 1.4.0 | released Jan 2022 |
| scipy | 1.8.0 | released Feb 2022 |
| xarray | 0.21.0 to 2022.3.0 | released Jan 2022 and Mar 2022 |

#### 2024 - Quarter 2:

Recommend drop support for:

| | | |
| ------------ | --------------- | ------------------------------ |
| ipython | 7.33.0 to 8.4.0 | released Apr 2022 and May 2022 |
| networkx | 2.8 | released Apr 2022 |
| numpy | 1.23.0 | released Jun 2022 |
| scikit-learn | 1.1.0 | released May 2022 |

#### 2024 - Quarter 3:

Recommend drop support for:

| | | |
| ---------- | -------------------- | ------------------------------ |
| ipython | 8.5.0 | released Sep 2022 |
| matplotlib | 3.6.0 | released Sep 2022 |
| pandas | 1.5.0 | released Sep 2022 |
| scipy | 1.9.0 | released Jul 2022 |
| xarray | 2022.6.0 to 2022.9.0 | released Jul 2022 and Sep 2022 |

#### 2024 - Quarter 4:

Recommend drop support for:

| | | |
| ------------ | ---------------------- | ------------------------------ |
| ipython | 8.6.0 to 8.7.0 | released Oct 2022 and Nov 2022 |
| numpy | 1.24.0 | released Dec 2022 |
| python | 3.10 | released Oct 2021 |
| scikit-learn | 1.2.0 | released Dec 2022 |
| xarray | 2022.10.0 to 2022.12.0 | released Oct 2022 and Dec 2022 |

#### 2025 - Quarter 1:

Recommend drop support for:

| | | |
| ------------ | -------------------- | ------------------------------ |
| ipython | 8.8.0 to 8.12.0 | released Jan 2023 and Mar 2023 |
| matplotlib | 3.7.0 | released Feb 2023 |
| networkx | 3.0 | released Jan 2023 |
| scikit-image | 0.20.0 | released Feb 2023 |
| scipy | 1.10.0 | released Jan 2023 |
| xarray | 2023.1.0 to 2023.3.0 | released Jan 2023 and Mar 2023 |

#### 2025 - Quarter 2:

Recommend drop support for:

| | | |
| ------------ | -------------------- | ------------------------------ |
| ipython | 8.13.0 to 8.14.0 | released Apr 2023 and Jun 2023 |
| networkx | 3.1 | released Apr 2023 |
| numpy | 1.25.0 | released Jun 2023 |
| pandas | 2.0.0 | released Apr 2023 |
| scikit-image | 0.21.0 | released Jun 2023 |
| scikit-learn | 1.3.0 | released Jun 2023 |
| scipy | 1.11.0 | released Jun 2023 |
| xarray | 2023.4.0 to 2023.6.0 | released Apr 2023 and Jun 2023 |

#### 2025 - Quarter 3:

Recommend drop support for:

| | | |
| ---------- | -------------------- | ------------------------------ |
| ipython | 8.15.0 to 8.16.0 | released Sep 2023 and Sep 2023 |
| matplotlib | 3.8.0 | released Sep 2023 |
| numpy | 1.26.0 | released Sep 2023 |
| pandas | 2.1.0 | released Aug 2023 |
| xarray | 2023.7.0 to 2023.9.0 | released Jul 2023 and Sep 2023 |

#### 2025 - Quarter 4:

Recommend drop support for:

| | | |
| ------ | ---- | ----------------- |
| python | 3.11 | released Oct 2022 |

#### 2026 - Quarter 4:

Recommend drop support for:

| | | |
| ------ | ---- | ----------------- |
| python | 3.12 | released Oct 2023 |