From cba72177572a3c42606f32ad625a7f1dba98e3c3 Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Wed, 14 Oct 2026 15:22:33 -0700 Subject: [PATCH 1/2] Add "libmpdec" to build deps on 3.15+ This unlocks the `_decimal` fast-path for the `decimal` stdlib module, making Decimal arithmetic ~16x faster (or rather, avoiding a 16x slowdown regression compared to 3.14 and below). --- 3.15/alpine3.23/Dockerfile | 1 + 3.15/alpine3.24/Dockerfile | 1 + 3.15/bookworm/Dockerfile | 1 + 3.15/slim-bookworm/Dockerfile | 1 + 3.15/slim-trixie/Dockerfile | 1 + 3.15/trixie/Dockerfile | 1 + 3.16-rc/alpine3.23/Dockerfile | 1 + 3.16-rc/alpine3.24/Dockerfile | 1 + 3.16-rc/bookworm/Dockerfile | 1 + 3.16-rc/slim-bookworm/Dockerfile | 1 + 3.16-rc/slim-trixie/Dockerfile | 1 + 3.16-rc/trixie/Dockerfile | 1 + Dockerfile-linux.template | 10 ++++++++++ 13 files changed, 22 insertions(+) diff --git a/3.15/alpine3.23/Dockerfile b/3.15/alpine3.23/Dockerfile index aca825d29..649a3e89a 100644 --- a/3.15/alpine3.23/Dockerfile +++ b/3.15/alpine3.23/Dockerfile @@ -36,6 +36,7 @@ RUN set -eux; \ libtirpc-dev \ linux-headers \ make \ + mpdecimal-dev \ ncurses-dev \ openssl-dev \ pax-utils \ diff --git a/3.15/alpine3.24/Dockerfile b/3.15/alpine3.24/Dockerfile index 84515c4dd..4c3f6d8e7 100644 --- a/3.15/alpine3.24/Dockerfile +++ b/3.15/alpine3.24/Dockerfile @@ -36,6 +36,7 @@ RUN set -eux; \ libtirpc-dev \ linux-headers \ make \ + mpdecimal-dev \ ncurses-dev \ openssl-dev \ pax-utils \ diff --git a/3.15/bookworm/Dockerfile b/3.15/bookworm/Dockerfile index 964b856ce..e8ef85551 100644 --- a/3.15/bookworm/Dockerfile +++ b/3.15/bookworm/Dockerfile @@ -27,6 +27,7 @@ RUN set -eux; \ savedAptMark="$(apt-mark showmanual)"; \ apt-get update; \ apt-get install -y --no-install-recommends \ + libmpdec-dev \ libzstd-dev \ ; \ \ diff --git a/3.15/slim-bookworm/Dockerfile b/3.15/slim-bookworm/Dockerfile index 50179ed28..7bbafab0f 100644 --- a/3.15/slim-bookworm/Dockerfile +++ b/3.15/slim-bookworm/Dockerfile @@ -38,6 +38,7 @@ RUN set -eux; \ libffi-dev \ libgdbm-dev \ liblzma-dev \ + libmpdec-dev \ libncursesw5-dev \ libreadline-dev \ libsqlite3-dev \ diff --git a/3.15/slim-trixie/Dockerfile b/3.15/slim-trixie/Dockerfile index f3b8d94f0..56a988b40 100644 --- a/3.15/slim-trixie/Dockerfile +++ b/3.15/slim-trixie/Dockerfile @@ -38,6 +38,7 @@ RUN set -eux; \ libffi-dev \ libgdbm-dev \ liblzma-dev \ + libmpdec-dev \ libncursesw5-dev \ libreadline-dev \ libsqlite3-dev \ diff --git a/3.15/trixie/Dockerfile b/3.15/trixie/Dockerfile index 48c815cab..d643bc79c 100644 --- a/3.15/trixie/Dockerfile +++ b/3.15/trixie/Dockerfile @@ -27,6 +27,7 @@ RUN set -eux; \ savedAptMark="$(apt-mark showmanual)"; \ apt-get update; \ apt-get install -y --no-install-recommends \ + libmpdec-dev \ libzstd-dev \ ; \ \ diff --git a/3.16-rc/alpine3.23/Dockerfile b/3.16-rc/alpine3.23/Dockerfile index cbdbab738..935da0f4b 100644 --- a/3.16-rc/alpine3.23/Dockerfile +++ b/3.16-rc/alpine3.23/Dockerfile @@ -36,6 +36,7 @@ RUN set -eux; \ libtirpc-dev \ linux-headers \ make \ + mpdecimal-dev \ ncurses-dev \ openssl-dev \ pax-utils \ diff --git a/3.16-rc/alpine3.24/Dockerfile b/3.16-rc/alpine3.24/Dockerfile index e187aa140..b9a7af65d 100644 --- a/3.16-rc/alpine3.24/Dockerfile +++ b/3.16-rc/alpine3.24/Dockerfile @@ -36,6 +36,7 @@ RUN set -eux; \ libtirpc-dev \ linux-headers \ make \ + mpdecimal-dev \ ncurses-dev \ openssl-dev \ pax-utils \ diff --git a/3.16-rc/bookworm/Dockerfile b/3.16-rc/bookworm/Dockerfile index 3241c347a..1fbda45a0 100644 --- a/3.16-rc/bookworm/Dockerfile +++ b/3.16-rc/bookworm/Dockerfile @@ -27,6 +27,7 @@ RUN set -eux; \ savedAptMark="$(apt-mark showmanual)"; \ apt-get update; \ apt-get install -y --no-install-recommends \ + libmpdec-dev \ libzstd-dev \ ; \ \ diff --git a/3.16-rc/slim-bookworm/Dockerfile b/3.16-rc/slim-bookworm/Dockerfile index 56009c04c..be8e82d84 100644 --- a/3.16-rc/slim-bookworm/Dockerfile +++ b/3.16-rc/slim-bookworm/Dockerfile @@ -38,6 +38,7 @@ RUN set -eux; \ libffi-dev \ libgdbm-dev \ liblzma-dev \ + libmpdec-dev \ libncursesw5-dev \ libreadline-dev \ libsqlite3-dev \ diff --git a/3.16-rc/slim-trixie/Dockerfile b/3.16-rc/slim-trixie/Dockerfile index f660c47c2..8dca73628 100644 --- a/3.16-rc/slim-trixie/Dockerfile +++ b/3.16-rc/slim-trixie/Dockerfile @@ -38,6 +38,7 @@ RUN set -eux; \ libffi-dev \ libgdbm-dev \ liblzma-dev \ + libmpdec-dev \ libncursesw5-dev \ libreadline-dev \ libsqlite3-dev \ diff --git a/3.16-rc/trixie/Dockerfile b/3.16-rc/trixie/Dockerfile index b924fa30f..45055a827 100644 --- a/3.16-rc/trixie/Dockerfile +++ b/3.16-rc/trixie/Dockerfile @@ -27,6 +27,7 @@ RUN set -eux; \ savedAptMark="$(apt-mark showmanual)"; \ apt-get update; \ apt-get install -y --no-install-recommends \ + libmpdec-dev \ libzstd-dev \ ; \ \ diff --git a/Dockerfile-linux.template b/Dockerfile-linux.template index b3f9886d4..4f0a0272b 100644 --- a/Dockerfile-linux.template +++ b/Dockerfile-linux.template @@ -120,6 +120,11 @@ RUN set -eux; \ if IN(env.version; "3.11", "3.12", "3.13") then empty else "zstd-dev" end, + if IN(env.version; "3.11", "3.12", "3.13", "3.14") then empty else + # https://github.com/docker-library/python/issues/1136 + # https://github.com/python/cpython/issues/115119 + "mpdecimal-dev" + end, empty else if is_slim then @@ -149,6 +154,11 @@ RUN set -eux; \ if IN(env.version; "3.11", "3.12", "3.13") then empty else "libzstd-dev" end, + if IN(env.version; "3.11", "3.12", "3.13", "3.14") then empty else + # https://github.com/docker-library/python/issues/1136 + # https://github.com/python/cpython/issues/115119 + "libmpdec-dev" + end, empty end ] -}} From 5bb3b302e532643acc0eebbdbcdbcabc5dddaa25 Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Fri, 16 Oct 2026 11:14:53 -0700 Subject: [PATCH 2/2] Ditch bookworm for 3.16+, `--without-system-libmpdec` for 3.15 bookworm --- 3.15/bookworm/Dockerfile | 3 +- 3.15/slim-bookworm/Dockerfile | 3 +- 3.16-rc/bookworm/Dockerfile | 131 --------------------------- 3.16-rc/slim-bookworm/Dockerfile | 147 ------------------------------- Dockerfile-linux.template | 6 +- versions.json | 2 - versions.sh | 5 +- 7 files changed, 13 insertions(+), 284 deletions(-) delete mode 100644 3.16-rc/bookworm/Dockerfile delete mode 100644 3.16-rc/slim-bookworm/Dockerfile diff --git a/3.15/bookworm/Dockerfile b/3.15/bookworm/Dockerfile index e8ef85551..d56e300f4 100644 --- a/3.15/bookworm/Dockerfile +++ b/3.15/bookworm/Dockerfile @@ -27,7 +27,6 @@ RUN set -eux; \ savedAptMark="$(apt-mark showmanual)"; \ apt-get update; \ apt-get install -y --no-install-recommends \ - libmpdec-dev \ libzstd-dev \ ; \ \ @@ -47,6 +46,8 @@ RUN set -eux; \ --enable-shared \ $(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') \ --with-ensurepip \ +# https://github.com/docker-library/python/pull/1137#issuecomment-6180817683 + --without-system-libmpdec \ ; \ nproc="$(nproc)"; \ EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \ diff --git a/3.15/slim-bookworm/Dockerfile b/3.15/slim-bookworm/Dockerfile index 7bbafab0f..798980b0a 100644 --- a/3.15/slim-bookworm/Dockerfile +++ b/3.15/slim-bookworm/Dockerfile @@ -38,7 +38,6 @@ RUN set -eux; \ libffi-dev \ libgdbm-dev \ liblzma-dev \ - libmpdec-dev \ libncursesw5-dev \ libreadline-dev \ libsqlite3-dev \ @@ -68,6 +67,8 @@ RUN set -eux; \ --enable-shared \ $(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') \ --with-ensurepip \ +# https://github.com/docker-library/python/pull/1137#issuecomment-6180817683 + --without-system-libmpdec \ ; \ nproc="$(nproc)"; \ EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \ diff --git a/3.16-rc/bookworm/Dockerfile b/3.16-rc/bookworm/Dockerfile deleted file mode 100644 index 1fbda45a0..000000000 --- a/3.16-rc/bookworm/Dockerfile +++ /dev/null @@ -1,131 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM buildpack-deps:bookworm - -# ensure local python is preferred over distribution python -ENV PATH /usr/local/bin:$PATH - -# runtime dependencies -RUN set -eux; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - libbluetooth-dev \ - tk-dev \ - uuid-dev \ - ; \ - rm -rf /var/lib/apt/lists/* - -ENV PYTHON_VERSION 3.16.0a1 -ENV PYTHON_SHA256 dcaa9029436b723e33412c68ca17f0130be73058e47a3a7c049cb8cdf6034ee9 - -RUN set -eux; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - libmpdec-dev \ - libzstd-dev \ - ; \ - \ - wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; \ - echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; \ - mkdir -p /usr/src/python; \ - tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \ - rm python.tar.xz; \ - \ - cd /usr/src/python; \ - gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ - ./configure \ - --build="$gnuArch" \ - --enable-loadable-sqlite-extensions \ - --enable-optimizations \ - --enable-option-checking=fatal \ - --enable-shared \ - $(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') \ - --with-ensurepip \ - ; \ - nproc="$(nproc)"; \ - EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \ - LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \ - arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \ -# https://docs.python.org/3.12/howto/perf_profiling.html -# https://github.com/docker-library/python/pull/1000#issuecomment-2597021615 - case "$arch" in \ - amd64|arm64) \ - # only add "-mno-omit-leaf" on arches that support it - # https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2 - # https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer - EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \ - ;; \ - i386) \ - # don't enable frame-pointers on 32bit x86 due to performance drop. - ;; \ - *) \ - # other arches don't support "-mno-omit-leaf" - EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \ - ;; \ - esac; \ - make -j "$nproc" \ - "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \ - "LDFLAGS=${LDFLAGS:-}" \ - ; \ -# https://github.com/docker-library/python/issues/784 -# prevent accidental usage of a system installed libpython of the same version - rm python; \ - make -j "$nproc" \ - "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \ - "LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\$\$ORIGIN/../lib'" \ - python \ - ; \ - make install; \ - \ -# enable GDB to load debugging data: https://github.com/docker-library/python/pull/701 - bin="$(readlink -ve /usr/local/bin/python3)"; \ - dir="$(dirname "$bin")"; \ - mkdir -p "/usr/share/gdb/auto-load/$dir"; \ - cp -vL Tools/gdb/libpython.py "/usr/share/gdb/auto-load/$bin-gdb.py"; \ - \ - cd /; \ - rm -rf /usr/src/python; \ - \ - find /usr/local -depth \ - \( \ - \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \ - -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \ - \) -exec rm -rf '{}' + \ - ; \ - \ - ldconfig; \ - \ - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | sort -u \ - | xargs -rt dpkg-query --search \ -# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) - | awk 'sub(":$", "", $1) { print $1 }' \ - | sort -u \ - | xargs -r apt-mark manual \ - ; \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/*; \ - \ - export PYTHONDONTWRITEBYTECODE=1; \ - python3 --version; \ - pip3 --version - -# make some useful symlinks that are expected to exist ("/usr/local/bin/python" and friends) -RUN set -eux; \ - for src in idle3 pip3 pydoc3 python3 python3-config; do \ - dst="$(echo "$src" | tr -d 3)"; \ - [ -s "/usr/local/bin/$src" ]; \ - [ ! -e "/usr/local/bin/$dst" ]; \ - ln -svT "$src" "/usr/local/bin/$dst"; \ - done - -CMD ["python3"] diff --git a/3.16-rc/slim-bookworm/Dockerfile b/3.16-rc/slim-bookworm/Dockerfile deleted file mode 100644 index be8e82d84..000000000 --- a/3.16-rc/slim-bookworm/Dockerfile +++ /dev/null @@ -1,147 +0,0 @@ -# -# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" -# -# PLEASE DO NOT EDIT IT DIRECTLY. -# - -FROM debian:bookworm-slim - -# ensure local python is preferred over distribution python -ENV PATH /usr/local/bin:$PATH - -# runtime dependencies -RUN set -eux; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - netbase \ - tzdata \ - ; \ - rm -rf /var/lib/apt/lists/* - -ENV PYTHON_VERSION 3.16.0a1 -ENV PYTHON_SHA256 dcaa9029436b723e33412c68ca17f0130be73058e47a3a7c049cb8cdf6034ee9 - -RUN set -eux; \ - \ - savedAptMark="$(apt-mark showmanual)"; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - dpkg-dev \ - g++ \ - gcc \ - gnupg \ - libbluetooth-dev \ - libbz2-dev \ - libc6-dev \ - libdb-dev \ - libffi-dev \ - libgdbm-dev \ - liblzma-dev \ - libmpdec-dev \ - libncursesw5-dev \ - libreadline-dev \ - libsqlite3-dev \ - libssl-dev \ - libzstd-dev \ - make \ - tk-dev \ - uuid-dev \ - wget \ - xz-utils \ - zlib1g-dev \ - ; \ - \ - wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; \ - echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; \ - mkdir -p /usr/src/python; \ - tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; \ - rm python.tar.xz; \ - \ - cd /usr/src/python; \ - gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ - ./configure \ - --build="$gnuArch" \ - --enable-loadable-sqlite-extensions \ - --enable-optimizations \ - --enable-option-checking=fatal \ - --enable-shared \ - $(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') \ - --with-ensurepip \ - ; \ - nproc="$(nproc)"; \ - EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; \ - LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; \ - LDFLAGS="${LDFLAGS:-} -Wl,--strip-all"; \ - arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \ -# https://docs.python.org/3.12/howto/perf_profiling.html -# https://github.com/docker-library/python/pull/1000#issuecomment-2597021615 - case "$arch" in \ - amd64|arm64) \ - # only add "-mno-omit-leaf" on arches that support it - # https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-momit-leaf-frame-pointer-2 - # https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/AArch64-Options.html#index-momit-leaf-frame-pointer - EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; \ - ;; \ - i386) \ - # don't enable frame-pointers on 32bit x86 due to performance drop. - ;; \ - *) \ - # other arches don't support "-mno-omit-leaf" - EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; \ - ;; \ - esac; \ - make -j "$nproc" \ - "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \ - "LDFLAGS=${LDFLAGS:-}" \ - ; \ -# https://github.com/docker-library/python/issues/784 -# prevent accidental usage of a system installed libpython of the same version - rm python; \ - make -j "$nproc" \ - "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" \ - "LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\$\$ORIGIN/../lib'" \ - python \ - ; \ - make install; \ - \ - cd /; \ - rm -rf /usr/src/python; \ - \ - find /usr/local -depth \ - \( \ - \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \ - -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \ - \) -exec rm -rf '{}' + \ - ; \ - \ - ldconfig; \ - \ - apt-mark auto '.*' > /dev/null; \ - apt-mark manual $savedAptMark; \ - find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \ - | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ - | sort -u \ - | xargs -rt dpkg-query --search \ -# https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html#S (we ignore diversions and it'll be really unusual for more than one package to provide any given .so file) - | awk 'sub(":$", "", $1) { print $1 }' \ - | sort -u \ - | xargs -r apt-mark manual \ - ; \ - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/*; \ - \ - export PYTHONDONTWRITEBYTECODE=1; \ - python3 --version; \ - pip3 --version - -# make some useful symlinks that are expected to exist ("/usr/local/bin/python" and friends) -RUN set -eux; \ - for src in idle3 pip3 pydoc3 python3 python3-config; do \ - dst="$(echo "$src" | tr -d 3)"; \ - [ -s "/usr/local/bin/$src" ]; \ - [ ! -e "/usr/local/bin/$dst" ]; \ - ln -svT "$src" "/usr/local/bin/$dst"; \ - done - -CMD ["python3"] diff --git a/Dockerfile-linux.template b/Dockerfile-linux.template index 4f0a0272b..f95548890 100644 --- a/Dockerfile-linux.template +++ b/Dockerfile-linux.template @@ -154,7 +154,7 @@ RUN set -eux; \ if IN(env.version; "3.11", "3.12", "3.13") then empty else "libzstd-dev" end, - if IN(env.version; "3.11", "3.12", "3.13", "3.14") then empty else + if IN(env.version; "3.11", "3.12", "3.13", "3.14") then empty elif env.variant | contains("bookworm") then empty else # https://github.com/docker-library/python/issues/1136 # https://github.com/python/cpython/issues/115119 "libmpdec-dev" @@ -214,6 +214,10 @@ RUN set -eux; \ {{ # skip LTO on riscv64: https://github.com/docker-library/python/pull/935, https://github.com/docker-library/python/pull/1038 -}} $(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') \ --with-ensurepip \ +{{ if env.version == "3.15" and (env.variant | contains("bookworm")) then ( -}} +# https://github.com/docker-library/python/pull/1137#issuecomment-6180817683 + --without-system-libmpdec \ +{{ ) else "" end -}} ; \ nproc="$(nproc)"; \ {{ if is_alpine then ( -}} diff --git a/versions.json b/versions.json index 29f6731c9..3afc8591b 100644 --- a/versions.json +++ b/versions.json @@ -106,8 +106,6 @@ "variants": [ "trixie", "slim-trixie", - "bookworm", - "slim-bookworm", "alpine3.24", "alpine3.23" ], diff --git a/versions.sh b/versions.sh index ea74dd774..781a5e544 100755 --- a/versions.sh +++ b/versions.sh @@ -191,7 +191,10 @@ for version in "${versions[@]}"; do variants: [ ( "trixie", - "bookworm", + if IN(env.rcVersion; "3.11", "3.12", "3.13", "3.14", "3.15") then + # https://github.com/docker-library/python/pull/1137#issuecomment-6180817683 + "bookworm" + else empty end, empty | ., "slim-" + .), # https://github.com/docker-library/ruby/pull/142#issuecomment-320012893 (