This is an automated email from the ASF dual-hosted git repository.
raulcd pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new 9f0341314ca GH-52522: [CI][Python] Build with released CPython 3.15.0
(#53264)
9f0341314ca is described below
commit 9f0341314ca96eb58081d4132c77b460d880b2b0
Author: paultiq <[email protected]>
AuthorDate: Fri Oct 16 08:41:48 2026 -0400
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: [email protected] <[email protected]>
Signed-off-by: Raúl Cumplido <[email protected]>
---
.env | 4 ++--
.../python-free-threaded-wheel-musllinux-test-imports.dockerfile | 2 +-
...python-free-threaded-wheel-musllinux-test-unittests.dockerfile | 2 +-
.../python-free-threaded-wheel-windows-test-vs2022.dockerfile | 2 +-
ci/docker/python-wheel-windows-test-vs2022.dockerfile | 2 +-
ci/scripts/install_python.sh | 6 +++---
compose.yaml | 8 ++++----
python/requirements-wheel-test.txt | 2 +-
8 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/.env b/.env
index cd30f7aa7c8..4be5d436f2d 100644
--- a/.env
+++ b/.env
@@ -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
diff --git
a/ci/docker/python-free-threaded-wheel-musllinux-test-imports.dockerfile
b/ci/docker/python-free-threaded-wheel-musllinux-test-imports.dockerfile
index 3f98c13352c..73b9f023e79 100644
--- a/ci/docker/python-free-threaded-wheel-musllinux-test-imports.dockerfile
+++ b/ci/docker/python-free-threaded-wheel-musllinux-test-imports.dockerfile
@@ -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
&& \
diff --git
a/ci/docker/python-free-threaded-wheel-musllinux-test-unittests.dockerfile
b/ci/docker/python-free-threaded-wheel-musllinux-test-unittests.dockerfile
index 6adbd50e0dc..8089824864c 100644
--- a/ci/docker/python-free-threaded-wheel-musllinux-test-unittests.dockerfile
+++ b/ci/docker/python-free-threaded-wheel-musllinux-test-unittests.dockerfile
@@ -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
&& \
diff --git
a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile
b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile
index dad0f33a27b..e67b9650071 100644
--- a/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile
+++ b/ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile
@@ -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; \
diff --git a/ci/docker/python-wheel-windows-test-vs2022.dockerfile
b/ci/docker/python-wheel-windows-test-vs2022.dockerfile
index 6acb395e653..565b4d96fd8 100644
--- a/ci/docker/python-wheel-windows-test-vs2022.dockerfile
+++ b/ci/docker/python-wheel-windows-test-vs2022.dockerfile
@@ -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
diff --git a/ci/scripts/install_python.sh b/ci/scripts/install_python.sh
index 82cab4d5721..33de190ccb0 100755
--- a/ci/scripts/install_python.sh
+++ b/ci/scripts/install_python.sh
@@ -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}"
diff --git a/compose.yaml b/compose.yaml
index 1741d00db43..512fb8a5396 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -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
diff --git a/python/requirements-wheel-test.txt
b/python/requirements-wheel-test.txt
index 591e4a03d41..829cf01f349 100644
--- a/python/requirements-wheel-test.txt
+++ b/python/requirements-wheel-test.txt
@@ -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