From fd0fc536a84e50dc2dc846f56bcf433cfda5aca3 Mon Sep 17 00:00:00 2001 From: Matthias Bussonnier Date: Mon, 2 Oct 2023 18:27:49 +0200 Subject: [PATCH 1/8] Soften explicit drop schedule. This does only change the presenting of the drop information: - reduplicate when the same package was released twice in the same quarter. - Remove the day of month. I don't think it helps conveying the flexibility that the spec --- spec-0000/SPEC0_versions.py | 57 ++++++---- spec-0000/chart.md | 16 +-- spec-0000/schedule.md | 204 +++++++++++++++++++----------------- 3 files changed, 149 insertions(+), 128 deletions(-) diff --git a/spec-0000/SPEC0_versions.py b/spec-0000/SPEC0_versions.py index f86ac9ad..44168f8d 100644 --- a/spec-0000/SPEC0_versions.py +++ b/spec-0000/SPEC0_versions.py @@ -124,31 +124,42 @@ 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") + + 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\n") diff --git a/spec-0000/chart.md b/spec-0000/chart.md index c5907438..25711e93 100644 --- a/spec-0000/chart.md +++ b/spec-0000/chart.md @@ -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 @@ -25,12 +26,13 @@ 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 @@ -38,19 +40,17 @@ section scikit-image 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 @@ -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 @@ -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 diff --git a/spec-0000/schedule.md b/spec-0000/schedule.md index 98a00791..11789947 100644 --- a/spec-0000/schedule.md +++ b/spec-0000/schedule.md @@ -1,98 +1,106 @@ -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: + +Recommend drop support for: + + 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 + + From dcb3c382b9451a7b89db8d3bdc9cc63745eac689 Mon Sep 17 00:00:00 2001 From: Matthias Bussonnier Date: Mon, 2 Oct 2023 19:04:25 +0200 Subject: [PATCH 2/8] one more space --- spec-0000/SPEC0_versions.py | 4 +- spec-0000/schedule.md | 103 ++++++++++++++++-------------------- 2 files changed, 48 insertions(+), 59 deletions(-) diff --git a/spec-0000/SPEC0_versions.py b/spec-0000/SPEC0_versions.py index 44168f8d..9412d3e0 100644 --- a/spec-0000/SPEC0_versions.py +++ b/spec-0000/SPEC0_versions.py @@ -161,5 +161,5 @@ def get_release_dates(package, support_time=plus24): 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\n") + fh.write(f" {package:<15} {version_range:<19} released {rel_range}\n") + fh.write("\n") diff --git a/spec-0000/schedule.md b/spec-0000/schedule.md index 11789947..4b3565cb 100644 --- a/spec-0000/schedule.md +++ b/spec-0000/schedule.md @@ -2,105 +2,94 @@ Recommend drop support for: - 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 - + 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 - + 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 - + 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 - + 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 - + 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 - + 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 - + 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 - + 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 - + python 3.11 released Oct 2022 #### 2026 - Quarter 4: Recommend drop support for: - python 3.12 released Oct 2023 - - + python 3.12 released Oct 2023 From 5833beb247a71c6e81496dd3197010a952ed19fc Mon Sep 17 00:00:00 2001 From: Matthias Bussonnier Date: Mon, 2 Oct 2023 19:38:26 +0200 Subject: [PATCH 3/8] try as a table --- spec-0000/SPEC0_versions.py | 5 +- spec-0000/schedule.md | 113 +++++++++++++++++++++--------------- 2 files changed, 71 insertions(+), 47 deletions(-) diff --git a/spec-0000/SPEC0_versions.py b/spec-0000/SPEC0_versions.py index 9412d3e0..f2c6ceed 100644 --- a/spec-0000/SPEC0_versions.py +++ b/spec-0000/SPEC0_versions.py @@ -149,6 +149,9 @@ def get_release_dates(package, support_time=plus24): fh.write("#### " + str(quarter).replace("Q", " - Quarter ") + ":\n\n") fh.write("Recommend drop support for:\n\n") + 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"] @@ -161,5 +164,5 @@ def get_release_dates(package, support_time=plus24): 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(f"|{package:<15}|{version_range:<19}|released {rel_range}|\n") fh.write("\n") diff --git a/spec-0000/schedule.md b/spec-0000/schedule.md index 4b3565cb..d07a22b5 100644 --- a/spec-0000/schedule.md +++ b/spec-0000/schedule.md @@ -2,94 +2,115 @@ Recommend drop support for: - 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 +| | | | +|----|----|----| +|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 +| | | | +|----|----|----| +|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 +| | | | +|----|----|----| +|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 +| | | | +|----|----|----| +|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 +| | | | +|----|----|----| +|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 +| | | | +|----|----|----| +|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 +| | | | +|----|----|----| +|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 +| | | | +|----|----|----| +|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 +| | | | +|----|----|----| +|python |3.11 |released Oct 2022| #### 2026 - Quarter 4: Recommend drop support for: - python 3.12 released Oct 2023 +| | | | +|----|----|----| +|python |3.12 |released Oct 2023| + From 1b27079bbcc6fb42281a29f0003569f47170b7c7 Mon Sep 17 00:00:00 2001 From: Matthias Bussonnier Date: Mon, 2 Oct 2023 21:13:28 +0200 Subject: [PATCH 4/8] reformat --- spec-0000/schedule.md | 133 +++++++++++++++++++++--------------------- 1 file changed, 66 insertions(+), 67 deletions(-) diff --git a/spec-0000/schedule.md b/spec-0000/schedule.md index d07a22b5..2b0529d8 100644 --- a/spec-0000/schedule.md +++ b/spec-0000/schedule.md @@ -2,115 +2,114 @@ Recommend drop support for: -| | | | -|----|----|----| -|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| +| | | | +| ------------ | ---------------- | ------------------------------ | +| 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| +| | | | +| -------- | ------------------ | ------------------------------ | +| 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| +| | | | +| ------------ | --------------- | ------------------------------ | +| 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| +| | | | +| ---------- | -------------------- | ------------------------------ | +| 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| +| | | | +| ------------ | ---------------------- | ------------------------------ | +| 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| +| | | | +| ------------ | -------------------- | ------------------------------ | +| 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| +| | | | +| ------------ | -------------------- | ------------------------------ | +| 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| +| | | | +| ---------- | -------------------- | ------------------------------ | +| 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| +| | | | +| ------ | ---- | ----------------- | +| python | 3.11 | released Oct 2022 | #### 2026 - Quarter 4: Recommend drop support for: -| | | | -|----|----|----| -|python |3.12 |released Oct 2023| - +| | | | +| ------ | ---- | ----------------- | +| python | 3.12 | released Oct 2023 | From 969ca3feb45d51eb0913fa18453721de73622c48 Mon Sep 17 00:00:00 2001 From: Matthias Bussonnier Date: Wed, 4 Oct 2023 00:31:33 -0700 Subject: [PATCH 5/8] Update spec-0000/SPEC0_versions.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Brigitta Sipőcz --- spec-0000/SPEC0_versions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec-0000/SPEC0_versions.py b/spec-0000/SPEC0_versions.py index f2c6ceed..ac2f7f9a 100644 --- a/spec-0000/SPEC0_versions.py +++ b/spec-0000/SPEC0_versions.py @@ -147,7 +147,7 @@ def get_release_dates(package, support_time=plus24): 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") + fh.write("###### Recommend drop support for:\n\n") fh.write("| | | |\n") fh.write("|----|----|----|\n") From 156d1faefb9f0932c4779d14c7ffe1b780ce0de6 Mon Sep 17 00:00:00 2001 From: Matthias Bussonnier Date: Wed, 4 Oct 2023 09:43:09 +0200 Subject: [PATCH 6/8] move cutoff in the past --- spec-0000/SPEC0_versions.py | 11 ++- spec-0000/chart.md | 14 +++ spec-0000/schedule.md | 166 +++++++++++++++++++----------------- 3 files changed, 112 insertions(+), 79 deletions(-) diff --git a/spec-0000/SPEC0_versions.py b/spec-0000/SPEC0_versions.py index ac2f7f9a..2c215180 100644 --- a/spec-0000/SPEC0_versions.py +++ b/spec-0000/SPEC0_versions.py @@ -28,10 +28,12 @@ ] plus36 = timedelta(days=int(365 * 3)) plus24 = timedelta(days=int(365 * 2)) +delta6month = timedelta(days=int(365 // 2)) # Release data now = datetime.now() +cutoff = now - delta6month def get_release_dates(package, support_time=plus24): @@ -71,7 +73,7 @@ def get_release_dates(package, support_time=plus24): for ver, release_date in sorted(release_date.items()): drop_date = release_date + support_time - if drop_date >= datetime.now(): + if drop_date >= cutoff: releases[ver] = { "release_date": release_date, "drop_date": drop_date, @@ -97,7 +99,7 @@ def get_release_dates(package, support_time=plus24): package: { version: dates for version, dates in releases.items() - if dates["drop_date"] > now + if dates["drop_date"] > cutoff } for package, releases in package_releases.items() } @@ -145,7 +147,10 @@ def get_release_dates(package, support_time=plus24): 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))): + # we collect package 6 month in the past, and drop the first quarter + # as we might have filtered some of the packages out depending on + # when we ran the script. + for quarter in list(sorted(set(dq.index.get_level_values(0))))[1:]: fh.write("#### " + str(quarter).replace("Q", " - Quarter ") + ":\n\n") fh.write("###### Recommend drop support for:\n\n") diff --git a/spec-0000/chart.md b/spec-0000/chart.md index 25711e93..5bc6d05e 100644 --- a/spec-0000/chart.md +++ b/spec-0000/chart.md @@ -10,6 +10,7 @@ section python 3.12 : 2023-10-02,2026-10-01 section numpy +1.21.0 : 2021-06-22,2023-06-22 1.22.0 : 2021-12-31,2023-12-31 1.23.0 : 2022-06-22,2024-06-21 1.24.0 : 2022-12-18,2024-12-17 @@ -17,6 +18,7 @@ section numpy 1.26.0 : 2023-09-16,2025-09-15 section scipy +1.7.0 : 2021-06-20,2023-06-20 1.8.0 : 2022-02-05,2024-02-05 1.9.0 : 2022-07-29,2024-07-28 1.10.0 : 2023-01-03,2025-01-02 @@ -29,6 +31,7 @@ section matplotlib 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 @@ -38,19 +41,24 @@ 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 +0.22.0 : 2023-10-03,2025-10-02 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.18.0 : 2021-05-06,2023-05-06 +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 @@ -70,6 +78,12 @@ section xarray 2023.9.0 : 2023-09-26,2025-09-25 section ipython +7.23.0 : 2021-04-30,2023-04-30 +7.24.0 : 2021-05-28,2023-05-28 +7.25.0 : 2021-06-25,2023-06-25 +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 diff --git a/spec-0000/schedule.md b/spec-0000/schedule.md index 2b0529d8..97fc487b 100644 --- a/spec-0000/schedule.md +++ b/spec-0000/schedule.md @@ -1,115 +1,129 @@ +#### 2023 - Quarter 3: + +###### Recommend drop support for: + +| | | | +|----|----|----| +|ipython |7.26.0 to 7.28.0 |released Aug 2021 and Sep 2021| +|networkx |2.6 |released Jul 2021| +|pandas |1.3.0 |released Jul 2021| +|scikit-learn |1.0 |released Sep 2021| +|xarray |0.19.0 |released Jul 2021| + #### 2023 - Quarter 4: -Recommend drop support for: +###### Recommend drop support for: -| | | | -| ------------ | ---------------- | ------------------------------ | -| 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 | +| | | | +|----|----|----| +|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: +###### 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 | +| | | | +|----|----|----| +|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: +###### 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 | +| | | | +|----|----|----| +|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: +###### 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 | +| | | | +|----|----|----| +|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: +###### 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 | +| | | | +|----|----|----| +|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: +###### 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 | +| | | | +|----|----|----| +|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: +###### 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 | +| | | | +|----|----|----| +|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: +###### 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 | +| | | | +|----|----|----| +|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: +###### Recommend drop support for: -| | | | -| ------ | ---- | ----------------- | -| python | 3.11 | released Oct 2022 | +| | | | +|----|----|----| +|python |3.11 |released Oct 2022| +|scikit-image |0.22.0 |released Oct 2023| #### 2026 - Quarter 4: -Recommend drop support for: +###### Recommend drop support for: + +| | | | +|----|----|----| +|python |3.12 |released Oct 2023| -| | | | -| ------ | ---- | ----------------- | -| python | 3.12 | released Oct 2023 | From 23432424cf1e264e9a8851f08173bd79b0c6a8e3 Mon Sep 17 00:00:00 2001 From: Jarrod Millman Date: Mon, 9 Oct 2023 09:58:50 -0700 Subject: [PATCH 7/8] Fix formatting for prettier --- spec-0000/SPEC0_versions.py | 20 ++++- spec-0000/schedule.md | 148 ++++++++++++++++++------------------ 2 files changed, 91 insertions(+), 77 deletions(-) diff --git a/spec-0000/SPEC0_versions.py b/spec-0000/SPEC0_versions.py index 2c215180..68f519e0 100644 --- a/spec-0000/SPEC0_versions.py +++ b/spec-0000/SPEC0_versions.py @@ -146,6 +146,8 @@ def get_release_dates(package, support_time=plus24): print("Saving drop schedule to schedule.md") + + with open("schedule.md", "w") as fh: # we collect package 6 month in the past, and drop the first quarter # as we might have filtered some of the packages out depending on @@ -154,8 +156,8 @@ def get_release_dates(package, support_time=plus24): fh.write("#### " + str(quarter).replace("Q", " - Quarter ") + ":\n\n") fh.write("###### Recommend drop support for:\n\n") - fh.write("| | | |\n") - fh.write("|----|----|----|\n") + table = "| | | |\n" + table += "|----|----|----|\n" sub = dq.loc[quarter] for package in sorted(set(sub.index.get_level_values(0))): @@ -169,5 +171,17 @@ def get_release_dates(package, support_time=plus24): 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") + table += f"|{package:<15}|{version_range:<19}|released {rel_range}|\n" + + rows = [[el.strip() for el in row.split("|")] for row in table.splitlines()] + col_widths = [max(map(len, column)) for column in zip(*rows)] + rows[1] = [ + el if el != "----" else "-" * col_widths[i] for i, el in enumerate(rows[1]) + ] + for row in rows: + for entry, width in zip(row, col_widths): + if not width: + continue + fh.write(f"| {str.ljust(entry, width)} ") + fh.write("|\n") fh.write("\n") diff --git a/spec-0000/schedule.md b/spec-0000/schedule.md index 97fc487b..cc84a194 100644 --- a/spec-0000/schedule.md +++ b/spec-0000/schedule.md @@ -2,128 +2,128 @@ ###### Recommend drop support for: -| | | | -|----|----|----| -|ipython |7.26.0 to 7.28.0 |released Aug 2021 and Sep 2021| -|networkx |2.6 |released Jul 2021| -|pandas |1.3.0 |released Jul 2021| -|scikit-learn |1.0 |released Sep 2021| -|xarray |0.19.0 |released Jul 2021| +| | | | +| ------------ | ---------------- | ------------------------------ | +| ipython | 7.26.0 to 7.28.0 | released Aug 2021 and Sep 2021 | +| networkx | 2.6 | released Jul 2021 | +| pandas | 1.3.0 | released Jul 2021 | +| scikit-learn | 1.0 | released Sep 2021 | +| xarray | 0.19.0 | released Jul 2021 | #### 2023 - Quarter 4: ###### Recommend drop support for: -| | | | -|----|----|----| -|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| +| | | | +| ------------ | ---------------- | ------------------------------ | +| 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| +| | | | +| -------- | ------------------ | ------------------------------ | +| 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| +| | | | +| ------------ | --------------- | ------------------------------ | +| 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| +| | | | +| ---------- | -------------------- | ------------------------------ | +| 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| +| | | | +| ------------ | ---------------------- | ------------------------------ | +| 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| +| | | | +| ------------ | -------------------- | ------------------------------ | +| 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| +| | | | +| ------------ | -------------------- | ------------------------------ | +| 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| +| | | | +| ---------- | -------------------- | ------------------------------ | +| 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| -|scikit-image |0.22.0 |released Oct 2023| +| | | | +| ------------ | ------ | ----------------- | +| python | 3.11 | released Oct 2022 | +| scikit-image | 0.22.0 | released Oct 2023 | #### 2026 - Quarter 4: ###### Recommend drop support for: -| | | | -|----|----|----| -|python |3.12 |released Oct 2023| +| | | | +| ------ | ---- | ----------------- | +| python | 3.12 | released Oct 2023 | From 201e92372b046ebb1062b98e527b47cb8e0816c8 Mon Sep 17 00:00:00 2001 From: Jarrod Millman Date: Mon, 9 Oct 2023 12:53:51 -0700 Subject: [PATCH 8/8] Don't print empty newline at end of schedule.md --- spec-0000/SPEC0_versions.py | 84 +++++++++++++++++++++++-------------- spec-0000/schedule.md | 1 - 2 files changed, 52 insertions(+), 33 deletions(-) diff --git a/spec-0000/SPEC0_versions.py b/spec-0000/SPEC0_versions.py index 68f519e0..0d796803 100644 --- a/spec-0000/SPEC0_versions.py +++ b/spec-0000/SPEC0_versions.py @@ -148,40 +148,60 @@ def get_release_dates(package, support_time=plus24): print("Saving drop schedule to schedule.md") +def pad_table(table): + rows = [[el.strip() for el in row.split("|")] for row in table] + col_widths = [max(map(len, column)) for column in zip(*rows)] + rows[1] = [ + el if el != "----" else "-" * col_widths[i] for i, el in enumerate(rows[1]) + ] + padded_table = [] + for row in rows: + line = "" + for entry, width in zip(row, col_widths): + if not width: + continue + line += f"| {str.ljust(entry, width)} " + line += f"|" + padded_table.append(line) + + return padded_table + + +def make_table(sub): + table = [] + table.append("| | | |") + table.append("|----|----|----|") + 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')}" + ) + table.append(f"|{package:<15}|{version_range:<19}|released {rel_range}|") + + return pad_table(table) + + +def make_quarter(quarter, dq): + table = ["#### " + str(quarter).replace("Q", " - Quarter ") + ":\n"] + table.append("###### Recommend drop support for:\n") + sub = dq.loc[quarter] + table.extend(make_table(sub)) + return "\n".join(table) + + with open("schedule.md", "w") as fh: # we collect package 6 month in the past, and drop the first quarter # as we might have filtered some of the packages out depending on # when we ran the script. + tb = [] for quarter in list(sorted(set(dq.index.get_level_values(0))))[1:]: - fh.write("#### " + str(quarter).replace("Q", " - Quarter ") + ":\n\n") - fh.write("###### Recommend drop support for:\n\n") - - table = "| | | |\n" - table += "|----|----|----|\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')}" - ) - table += f"|{package:<15}|{version_range:<19}|released {rel_range}|\n" - - rows = [[el.strip() for el in row.split("|")] for row in table.splitlines()] - col_widths = [max(map(len, column)) for column in zip(*rows)] - rows[1] = [ - el if el != "----" else "-" * col_widths[i] for i, el in enumerate(rows[1]) - ] - for row in rows: - for entry, width in zip(row, col_widths): - if not width: - continue - fh.write(f"| {str.ljust(entry, width)} ") - fh.write("|\n") - fh.write("\n") + tb.append(make_quarter(quarter, dq)) + + fh.write("\n\n".join(tb)) + fh.write("\n") diff --git a/spec-0000/schedule.md b/spec-0000/schedule.md index cc84a194..f585820a 100644 --- a/spec-0000/schedule.md +++ b/spec-0000/schedule.md @@ -126,4 +126,3 @@ | | | | | ------ | ---- | ----------------- | | python | 3.12 | released Oct 2023 | -