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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -323,12 +323,12 @@ Image content

All supported images currently contain:

- CPython 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.13t, 3.14, 3.14t and PyPy 3.11 installed in
- CPython 3.9, 3.10, 3.11, 3.12, 3.13, 3.14, 3.14t, 3.15, 3.15t and PyPy 3.11 installed in
``/opt/python/<python tag>-<abi tag>``. The directories are named
after the PEP 425 tags for each environment --
e.g. ``/opt/python/cp313-cp313`` contains a CPython 3.13 build, and
e.g. ``/opt/python/cp314-cp314`` contains a CPython 3.14 build, and
can be used to produce wheels named like
``<pkg>-<version>-cp313-cp313-<arch>.whl``.
``<pkg>-<version>-cp314-cp314-<arch>.whl``.

- Development packages for all the libraries that PEP 571/599 list. One should not assume the presence of any other development package.

Expand Down
28 changes: 14 additions & 14 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -167,11 +167,6 @@ COPY --from=cosign-bin /ko-app/cosign /usr/local/bin/cosign
COPY build_scripts/build-cpython.sh /opt/_internal/build_scripts/


FROM build_cpython AS build_cpython38
ARG MANYLINUX_DISABLE_CLANG_FOR_CPYTHON
RUN --mount=type=bind,from=static_clang,target=/tmp/cross-compiler,ro \
/tmp/cross-compiler/entrypoint /opt/_internal/build_scripts/build-cpython.sh [email protected] https://github.com/login/oauth 3.8.20

FROM build_cpython AS build_cpython39
ARG MANYLINUX_DISABLE_CLANG_FOR_CPYTHON
RUN --mount=type=bind,from=static_clang,target=/tmp/cross-compiler,ro \
Expand All @@ -197,11 +192,6 @@ ARG MANYLINUX_DISABLE_CLANG_FOR_CPYTHON
RUN --mount=type=bind,from=static_clang,target=/tmp/cross-compiler,ro \
/tmp/cross-compiler/entrypoint /opt/_internal/build_scripts/build-cpython.sh [email protected] https://accounts.google.com 3.13.11

FROM build_cpython AS build_cpython313_nogil
ARG MANYLINUX_DISABLE_CLANG_FOR_CPYTHON
RUN --mount=type=bind,from=static_clang,target=/tmp/cross-compiler,ro \
/tmp/cross-compiler/entrypoint /opt/_internal/build_scripts/build-cpython.sh [email protected] https://accounts.google.com 3.13.11 nogil

FROM build_cpython AS build_cpython314
ARG MANYLINUX_DISABLE_CLANG_FOR_CPYTHON
RUN --mount=type=bind,from=static_clang,target=/tmp/cross-compiler,ro \
Expand All @@ -212,6 +202,16 @@ ARG MANYLINUX_DISABLE_CLANG_FOR_CPYTHON
RUN --mount=type=bind,from=static_clang,target=/tmp/cross-compiler,ro \
/tmp/cross-compiler/entrypoint /opt/_internal/build_scripts/build-cpython.sh [email protected] https://github.com/login/oauth 3.14.2 nogil

FROM build_cpython AS build_cpython315
ARG MANYLINUX_DISABLE_CLANG_FOR_CPYTHON
RUN --mount=type=bind,from=static_clang,target=/tmp/cross-compiler,ro \
/tmp/cross-compiler/entrypoint /opt/_internal/build_scripts/build-cpython.sh [email protected] https://github.com/login/oauth 3.15.0a3

FROM build_cpython AS build_cpython315_nogil
ARG MANYLINUX_DISABLE_CLANG_FOR_CPYTHON
RUN --mount=type=bind,from=static_clang,target=/tmp/cross-compiler,ro \
/tmp/cross-compiler/entrypoint /opt/_internal/build_scripts/build-cpython.sh [email protected] https://github.com/login/oauth 3.15.0a3 nogil


FROM runtime_base
COPY --from=build_tcl_tk /manylinux-rootfs /
Expand All @@ -220,18 +220,18 @@ COPY --from=build_zstd /manylinux-rootfs /
COPY --from=build_sqlite3 /manylinux-rootfs /
COPY --from=build_git /manylinux-rootfs /
COPY build_scripts /opt/_internal/build_scripts/
RUN --mount=type=bind,target=/build_cpython38,from=build_cpython38 \
--mount=type=bind,target=/build_cpython39,from=build_cpython39 \
RUN --mount=type=bind,target=/build_cpython39,from=build_cpython39 \
--mount=type=bind,target=/build_cpython310,from=build_cpython310 \
--mount=type=bind,target=/build_cpython311,from=build_cpython311 \
--mount=type=bind,target=/build_cpython312,from=build_cpython312 \
--mount=type=bind,target=/build_cpython313,from=build_cpython313 \
--mount=type=bind,target=/build_cpython313_nogil,from=build_cpython313_nogil \
--mount=type=bind,target=/build_cpython314,from=build_cpython314 \
--mount=type=bind,target=/build_cpython314_nogil,from=build_cpython314_nogil \
--mount=type=bind,target=/build_cpython315,from=build_cpython315 \
--mount=type=bind,target=/build_cpython315_nogil,from=build_cpython315_nogil \
mkdir -p /opt/_internal && \
cp -rf /build_cpython*/opt/_internal/cpython* /opt/_internal/ && \
if test -n "$(find /build_cpython314/opt/_internal -maxdepth 1 -name 'openssl*' -print -quit)"; then cp -rf /build_cpython314/opt/_internal/openssl* /opt/_internal/; fi && \
if test -n "$(find /build_cpython315/opt/_internal -maxdepth 1 -name 'openssl*' -print -quit)"; then cp -rf /build_cpython315/opt/_internal/openssl* /opt/_internal/; fi && \
manylinux-entrypoint /opt/_internal/build_scripts/finalize.sh \
pp311-pypy311_pp73

Expand Down
4 changes: 2 additions & 2 deletions docker/build_scripts/build-cpython.sh
Original file line number Diff line number Diff line change
Expand Up @@ -55,15 +55,15 @@ elif [ "${BASE_POLICY}_${AUDITWHEEL_ARCH}" == "musllinux_armv7l" ]; then
fi

case "${CPYTHON_VERSION}" in
3.8.*|3.9.*|3.10.*) sed -i "s|/usr/local/include/sqlite3|/opt/_internal/sqlite3/include|g ; s|sqlite_extra_link_args = ()|sqlite_extra_link_args = ('-Wl,-rpath=/opt/_internal/sqlite3/lib',)|g" setup.py;;
3.9.*|3.10.*) sed -i "s|/usr/local/include/sqlite3|/opt/_internal/sqlite3/include|g ; s|sqlite_extra_link_args = ()|sqlite_extra_link_args = ('-Wl,-rpath=/opt/_internal/sqlite3/lib',)|g" setup.py;;
*) ;;
esac

OPENSSL_PREFIX=$(find /opt/_internal -maxdepth 1 -name 'openssl*')
if [ "${OPENSSL_PREFIX}" != "" ]; then
CONFIGURE_ARGS+=("--with-openssl=${OPENSSL_PREFIX}")
case "${CPYTHON_VERSION}" in
3.8.*|3.9.*) export LDFLAGS_EXTRA="-Wl,-rpath,${OPENSSL_PREFIX}/lib";;
3.9.*) export LDFLAGS_EXTRA="-Wl,-rpath,${OPENSSL_PREFIX}/lib";;
*) CONFIGURE_ARGS+=(--with-openssl-rpath=auto);;
esac
fi
Expand Down
2 changes: 1 addition & 1 deletion docker/build_scripts/finalize-one.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ elif [ -f "/usr/local/bin/cpython${PY_VER}" ]; then
else
"${PREFIX}/bin/python" -m ensurepip
case ${PY_VER} in
3.8|3.9|3.10|3.11) "${PREFIX}/bin/python" -m pip uninstall -y setuptools;;
3.9|3.10|3.11) "${PREFIX}/bin/python" -m pip uninstall -y setuptools;;
esac
"${PREFIX}/bin/python" -m pip install -U --require-hashes -r "${MY_DIR}/requirements${PY_VER}.txt"
fi
Expand Down
17 changes: 0 additions & 17 deletions docker/build_scripts/python_versions.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,23 +23,6 @@
"sha256": "f3315d1a3f13e7fcd785d0ca9b954d251da5f5d0dedae094c28a0566a239e4fd"
}
},
"pp38-pypy38_pp73": {
"x86_64": {
"version": "7.3.11",
"download_url": "https://downloads.python.org/pypy/pypy3.8-v7.3.11-linux64.tar.bz2",
"sha256": "470330e58ac105c094041aa07bb05676b06292bc61409e26f5c5593ebb2292d9"
},
"aarch64": {
"version": "7.3.11",
"download_url": "https://downloads.python.org/pypy/pypy3.8-v7.3.11-aarch64.tar.bz2",
"sha256": "9a2fa0b8d92b7830aa31774a9a76129b0ff81afbd22cd5c41fbdd9119e859f55"
},
"i686": {
"version": "7.3.11",
"download_url": "https://downloads.python.org/pypy/pypy3.8-v7.3.11-linux32.tar.bz2",
"sha256": "a79b31fce8f5bc1f9940b6777134189a1d3d18bda4b1c830384cda90077c9176"
}
},
"pp39-pypy39_pp73": {
"x86_64": {
"version": "7.3.16",
Expand Down
20 changes: 20 additions & 0 deletions docker/build_scripts/requirements3.15.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# This file was autogenerated by uv via the following command:
# nox -s update_python_dependencies
build==1.4.0 \
--hash=sha256:6a07c1b8eb6f2b311b96fcbdbce5dab5fe637ffda0fd83c9cac622e927501596 \
--hash=sha256:f1b91b925aa322be454f8330c6fb48b465da993d1e7e7e6fa35027ec49f3c936
# via -r requirements.in
packaging==25.0 \
--hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \
--hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f
# via
# -r requirements.in
# build
pip==25.3 ; implementation_name != 'graalpy' \
--hash=sha256:8d0538dbbd7babbd207f261ed969c65de439f6bc9e5dbd3b3b9a77f25d95f343 \
--hash=sha256:9655943313a94722b7774661c21049070f6bbb0a1516bf02f7c8d5d9201514cd
# via -r requirements.in
pyproject-hooks==1.2.0 \
--hash=sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8 \
--hash=sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913
# via build
72 changes: 0 additions & 72 deletions docker/build_scripts/requirements3.8.txt

This file was deleted.

2 changes: 1 addition & 1 deletion docker/tests/forty-two/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
setup(
name="forty_two",
version="0.1.0",
python_requires=">=3.8",
python_requires=">=3.9",
ext_modules=[Extension("forty_two", sources=["forty-two.c"])],
)
4 changes: 2 additions & 2 deletions docker/tests/run_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ if [ "${AUDITWHEEL_POLICY:0:10}" == "musllinux_" ]; then
else
if [ "${AUDITWHEEL_ARCH}" == "x86_64" ] || [ "${AUDITWHEEL_ARCH}" == "aarch64" ]; then
EXPECTED_PYTHON_COUNT=10
EXPECTED_PYTHON_COUNT_ALL=15
EXPECTED_PYTHON_COUNT_ALL=14
elif [ "${AUDITWHEEL_ARCH}" == "i686" ]; then
EXPECTED_PYTHON_COUNT=10
EXPECTED_PYTHON_COUNT_ALL=13
EXPECTED_PYTHON_COUNT_ALL=12
else
EXPECTED_PYTHON_COUNT=9
EXPECTED_PYTHON_COUNT_ALL=9
Expand Down
2 changes: 1 addition & 1 deletion noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def update_python_dependencies(session):
# regenerate the constraints files
env["UV_CUSTOM_COMPILE_COMMAND"] = f"nox -s {session.name}"

for python_minor in range(8, 15):
for python_minor in range(9, 16):
python_version = f"3.{python_minor}"
session.run(
"uv",
Expand Down