From d48cc8d6c38cc61ca27127e21f5c7a7b9277777c Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Thu, 1 Oct 2026 18:12:37 +0300 Subject: [PATCH 1/6] Upgrade Python syntax to 3.11+ --- .ruff.toml | 2 +- _tools/generate_release_cycle.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.ruff.toml b/.ruff.toml index af448e5b6e..550f27e614 100644 --- a/.ruff.toml +++ b/.ruff.toml @@ -1,4 +1,4 @@ -target-version = "py310" +target-version = "py311" fix = true output-format = "full" line-length = 88 diff --git a/_tools/generate_release_cycle.py b/_tools/generate_release_cycle.py index 24dfa03e74..b564cf428e 100644 --- a/_tools/generate_release_cycle.py +++ b/_tools/generate_release_cycle.py @@ -101,7 +101,7 @@ def __init__(self, *, limit_to_active=False, special_py27=False) -> None: def write_csv(self) -> None: """Output CSV files.""" - now_str = str(dt.datetime.now(dt.timezone.utc)) + now_str = str(dt.datetime.now(dt.UTC)) versions_by_category = {"branches": {}, "end-of-life": {}} headers = None From 96be49869dc42a1a87b48fd936aed2a114d78c64 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Thu, 1 Oct 2026 18:12:54 +0300 Subject: [PATCH 2/6] Remove 3.10 from RM list --- developer-workflow/development-cycle.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/developer-workflow/development-cycle.rst b/developer-workflow/development-cycle.rst index 17bd8c2111..d08e4b1985 100644 --- a/developer-workflow/development-cycle.rst +++ b/developer-workflow/development-cycle.rst @@ -348,7 +348,7 @@ Current administrators +--------------------+----------------------------------------------------------+-------------------+ | Thomas Wouters | Python 3.12 and 3.13 Release Manager | Yhg1s | +--------------------+----------------------------------------------------------+-------------------+ -| Pablo Galindo | Python 3.10 and 3.11 Release Manager, | pablogsal | +| Pablo Galindo | Python 3.11 Release Manager, | pablogsal | | | Maintainer of buildbot.python.org | | +--------------------+----------------------------------------------------------+-------------------+ | Ɓukasz Langa | | ambv | From 6642c810037687f9315c3228619bd42754092f5d Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Thu, 1 Oct 2026 18:13:05 +0300 Subject: [PATCH 3/6] Remove 3.10 tab --- getting-started/setup-building.rst | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/getting-started/setup-building.rst b/getting-started/setup-building.rst index b7fc7b2e2f..76d5c053e7 100644 --- a/getting-started/setup-building.rst +++ b/getting-started/setup-building.rst @@ -892,23 +892,6 @@ some of CPython's modules (for example, ``zlib``). --with-pydebug \ --with-openssl="$(brew --prefix openssl@3)" - .. tab:: Python 3.10 - - For Python 3.10:: - - $ CPPFLAGS="-I$(brew --prefix gdbm)/include -I$(brew --prefix xz)/include" \ - LDFLAGS="-L$(brew --prefix gdbm)/lib -L$(brew --prefix xz)/lib" \ - ./configure --config-cache \ - --with-pydebug \ - --with-openssl="$(brew --prefix openssl@3)" \ - --with-tcltk-libs="$(pkg-config --libs tcl tk)" \ - --with-tcltk-includes="$(pkg-config --cflags tcl tk)" \ - --with-dbmliborder=gdbm:ndbm - - (``--with-dbmliborder`` is a workaround for a Homebrew-specific change - to ``gdbm``; see `#89452 `__ - for details.) - .. tab:: MacPorts For **MacPorts**, install dependencies using ``port``:: From 5418b6808de484cc6196c2867c403c540eac6970 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Thu, 1 Oct 2026 18:15:01 +0300 Subject: [PATCH 4/6] Promote 3.11+ tab --- getting-started/setup-building.rst | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/getting-started/setup-building.rst b/getting-started/setup-building.rst index 76d5c053e7..84d21f7c24 100644 --- a/getting-started/setup-building.rst +++ b/getting-started/setup-building.rst @@ -882,15 +882,13 @@ some of CPython's modules (for example, ``zlib``). $ brew bundle --file=Misc/Brewfile - .. tab:: Python 3.11+ + Then configure:: - For Python 3.11 and newer:: - - $ GDBM_CFLAGS="-I$(brew --prefix gdbm)/include" \ - GDBM_LIBS="-L$(brew --prefix gdbm)/lib -lgdbm" \ - ./configure --config-cache \ - --with-pydebug \ - --with-openssl="$(brew --prefix openssl@3)" + $ GDBM_CFLAGS="-I$(brew --prefix gdbm)/include" \ + GDBM_LIBS="-L$(brew --prefix gdbm)/lib -lgdbm" \ + ./configure --config-cache \ + --with-pydebug \ + --with-openssl="$(brew --prefix openssl@3)" .. tab:: MacPorts @@ -898,15 +896,12 @@ some of CPython's modules (for example, ``zlib``). $ sudo port install pkgconfig openssl xz gdbm tk +quartz mpdecimal zstd - .. tab:: Python 3.11+ - - For Python 3.11 and newer:: - - $ GDBM_CFLAGS="-I$(dirname $(dirname $(which port)))/include" \ - GDBM_LIBS="-L$(dirname $(dirname $(which port)))/lib -lgdbm" \ - ./configure --config-cache \ - --with-pydebug + Then configure:: + $ GDBM_CFLAGS="-I$(dirname $(dirname $(which port)))/include" \ + GDBM_LIBS="-L$(dirname $(dirname $(which port)))/lib -lgdbm" \ + ./configure --config-cache \ + --with-pydebug And finally, run ``make``:: From 5928212784c930827f746a6bfeb958a489117b89 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Thu, 1 Oct 2026 18:17:41 +0300 Subject: [PATCH 5/6] Update instructions --- getting-started/setup-building.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/setup-building.rst b/getting-started/setup-building.rst index 84d21f7c24..fc40a7289d 100644 --- a/getting-started/setup-building.rst +++ b/getting-started/setup-building.rst @@ -388,7 +388,7 @@ compiler just like building for :ref:`Unix ` as well as: 1. A C compiler that can target WebAssembly (for example, `WASI SDK`_) 2. A WASI host/runtime (for example, Wasmtime_) -3. A system install of Python 3.11 or newer to run the build scripts +3. A system install of Python to run the build scripts All of this is provided in the WASI :ref:`dev container ` (which you can select as an alternative container when using a @@ -412,7 +412,7 @@ build you ultimately care about (that is, the build Python is not meant for use by you directly, only the build system). The easiest way to get a debug build of CPython for WASI is to run the -following command with Python 3.11 or newer: +following command: .. tab:: Python 3.15+ @@ -974,7 +974,7 @@ make sure you also commit the changes in the generated files. Python's :file:`configure.ac` script requires a specific version of GNU Autoconf. For Python 3.12 and newer, GNU Autoconf v2.71 is required. -For Python 3.11 and earlier, GNU Autoconf v2.69 is required. +For Python 3.11, GNU Autoconf v2.69 is required. The recommended and by far the easiest way to regenerate :file:`configure` is:: From 41bb595099ac9f758133e7326912900ed9583d40 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Thu, 1 Oct 2026 20:38:35 +0300 Subject: [PATCH 6/6] Keep "3.11 or newer" mention here Co-authored-by: Zachary Ware --- getting-started/setup-building.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/setup-building.rst b/getting-started/setup-building.rst index fc40a7289d..b2309f809c 100644 --- a/getting-started/setup-building.rst +++ b/getting-started/setup-building.rst @@ -388,7 +388,7 @@ compiler just like building for :ref:`Unix ` as well as: 1. A C compiler that can target WebAssembly (for example, `WASI SDK`_) 2. A WASI host/runtime (for example, Wasmtime_) -3. A system install of Python to run the build scripts +3. A system install of Python 3.11 or newer to run the build scripts All of this is provided in the WASI :ref:`dev container ` (which you can select as an alternative container when using a