GH-52522: [CI][Python] Build with released CPython 3.15.0 (#53264)

### Rationale for this change

Python 3.15.0 released 2026-10-09 (https://www.python.org/downloads/release/python-3150/).

This is a follow-up to https://github.com/apache/arrow/pull/48191, bumping the release pins and versions from 3.15.0rc2 to 3.15.0 (released).

### What changes are included in this PR?
- Change version reference from 3.15.0rc2 to 3.15.0
- Update manylinux and musllinux quay.io build dates
- Update build date for python-build-standalone
- Bump PYTHON_WHEEL_WINDOWS_IMAGE_REVISION and PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION

### Are these changes tested?
No

### Are there any user-facing changes?
No

### Was AI used for this PR?

**PR code and description written by:**

- [X] Human
- [ ] AI

**Reviewed before submission by:**

- [X] Human
- [X] AI
- [ ] Not reviewed

* GitHub Issue: #52522

Authored-by: paul@iqmo.com <paul@iqmo.com>
Signed-off-by: Raúl Cumplido <raulcd@apache.org>
This commit is contained in:
paultiq authored and GitHub committed 2026-10-16 13:41:48 +01:00
1 parent 50c2fc2656
commit 9f0341314c
8 files changed
+14 -14

No files matched your search

+2 -2
View File
@@ -98,6 +98,6 @@ VCPKG="9b965a116838c6cdcd36bca60d1b81b030c8ab8d" # 2026.05.27 (not release, u
# ci/docker/python-*-windows-*.dockerfile or the vcpkg config.
# This is a workaround for our CI problem that "archery docker build" doesn't
# use pulled built images in dev/tasks/python-wheels/github.windows.yml.
PYTHON_WHEEL_WINDOWS_IMAGE_REVISION=2026-10-01
PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION=2026-09-14
PYTHON_WHEEL_WINDOWS_IMAGE_REVISION=2026-10-11
PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION=2026-11-11
@@ -36,7 +36,7 @@ RUN apk update && \
RUN set -e; \
case "${python_version}" in \
3.14) python_patch_version="3.14.7";; \
3.15) python_patch_version="3.15.0rc2";; \
3.15) python_patch_version="3.15.0";; \
esac && \
curl -L -o python.tar.zst \
https://github.com/astral-sh/python-build-standalone/releases/download/${build_date}/cpython-${python_patch_version}+${build_date}-${arch}-unknown-linux-musl-freethreaded+lto-full.tar.zst && \
@@ -38,7 +38,7 @@ RUN apk update && \
RUN set -e; \
case "${python_version}" in \
3.14) python_patch_version="3.14.7";; \
3.15) python_patch_version="3.15.0rc2";; \
3.15) python_patch_version="3.15.0";; \
esac && \
curl -L -o python.tar.zst \
https://github.com/astral-sh/python-build-standalone/releases/download/${build_date}/cpython-${python_patch_version}+${build_date}-${arch}-unknown-linux-musl-freethreaded+lto-full.tar.zst && \
@@ -30,7 +30,7 @@ ARG python=3.14
# final release it leads to, e.g. 3.15.0/python-3.15.0rc2-amd64.exe
# hadolint ignore=SC1072
RUN (if "%python%"=="3.14" setx PYTHON_VERSION "3.14.7" && setx PYTHON_RELEASE "3.14.7") & \
(if "%python%"=="3.15" setx PYTHON_VERSION "3.15.0rc2" && setx PYTHON_RELEASE "3.15.0")
(if "%python%"=="3.15" setx PYTHON_VERSION "3.15.0" && setx PYTHON_RELEASE "3.15.0")
SHELL ["powershell", "-NoProfile", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN $version = $env:PYTHON_VERSION; \
@@ -32,7 +32,7 @@ RUN (if "%python%"=="3.11" setx PYTHON_VERSION "3.11.9" && setx PYTHON_CMD "py -
(if "%python%"=="3.12" setx PYTHON_VERSION "3.12.10" && setx PYTHON_CMD "py -3.12") & \
(if "%python%"=="3.13" setx PYTHON_VERSION "3.13.14" && setx PYTHON_CMD "py -3.13") & \
(if "%python%"=="3.14" setx PYTHON_VERSION "3.14.7" && setx PYTHON_CMD "py -3.14") & \
(if "%python%"=="3.15" setx PYTHON_VERSION "3.15.0-rc2" && setx PYTHON_CMD "py -3.15")
(if "%python%"=="3.15" setx PYTHON_VERSION "3.15.0" && setx PYTHON_CMD "py -3.15")
# hadolint ignore=DL3059
+3 -3
View File
@@ -30,8 +30,8 @@ versions=([3.11]=3.11.9
[3.13]=3.13.14
[3.14]=3.14.7
[3.14t]=3.14.7
[3.15]=3.15.0rc2
[3.15t]=3.15.0rc2
[3.15]=3.15.0
[3.15t]=3.15.0
)
if [ "$#" -ne 2 ]; then
@@ -50,7 +50,7 @@ if [ "$platform" = "macOS" ]; then
echo "Downloading Python installer..."
# Match python.org directory by truncating any pre-release suffix:
# 3.15.0rc2 is https://www.python.org/ftp/python/3.15.0/python-3.15.0rc2-macos11.pkg
# 3.15.0 is https://www.python.org/ftp/python/3.15.0/python-3.15.0-macos11.pkg
release_version="${full_version%%[abrc]*}"
fname="python-${full_version}-macos11.pkg"
wget "https://www.python.org/ftp/python/${release_version}/${fname}"
+4 -4
View File
@@ -1179,7 +1179,7 @@ services:
args:
arch: ${ARCH}
arch_short: ${ARCH_SHORT}
base: quay.io/pypa/manylinux_2_28_${ARCH_ALIAS}:2026.09.05-1
base: quay.io/pypa/manylinux_2_28_${ARCH_ALIAS}:2026.10.10-1
manylinux: 2_28
python: ${PYTHON}
python_abi_tag: ${PYTHON_ABI_TAG}
@@ -1204,7 +1204,7 @@ services:
args:
arch: ${ARCH}
arch_short: ${ARCH_SHORT}
base: quay.io/pypa/musllinux_1_2_${ARCH_ALIAS}:2026.09.05-1
base: quay.io/pypa/musllinux_1_2_${ARCH_ALIAS}:2026.10.10-1
musllinux: 1_2
python: ${PYTHON}
python_abi_tag: ${PYTHON_ABI_TAG}
@@ -1245,7 +1245,7 @@ services:
args:
base: "alpine:${ALPINE_LINUX}"
python_version: ${PYTHON}
build_date: "20260901" # python-build-standalone release date
build_date: "20261009" # python-build-standalone release date
arch: ${ARCH_ALIAS}
context: .
dockerfile: ci/docker/python-free-threaded-wheel-musllinux-test-imports.dockerfile
@@ -1289,7 +1289,7 @@ services:
args:
base: "alpine:${ALPINE_LINUX}"
python_version: ${PYTHON}
build_date: "20260901" # python-build-standalone release date
build_date: "20261009" # python-build-standalone release date
arch: ${ARCH_ALIAS}
context: .
dockerfile: ci/docker/python-free-threaded-wheel-musllinux-test-unittests.dockerfile
+1 -1
View File
@@ -15,6 +15,6 @@ tzdata; sys_platform == 'win32'
numpy~=2.0.0; python_version <= "3.12"
numpy~=2.1.0; python_version == "3.13"
numpy~=2.3.3; python_version == "3.14"
numpy~=2.5.2; python_version == "3.15" # TODO: 2.5.2 is for 3.15-rc1, after release, update to correct version
numpy~=2.5.2; python_version == "3.15"
pandas