GH-48172: [Python] Add cp315 to build - #48191
Conversation
…til they ship 3.15 wheels.
|
|
|
@github-actions crossbow submit wheel-manylinux-2-28-cp315-cp315-amd64 |
|
Revision: 2d2a557 Submitted crossbow builds: ursacomputing/crossbow @ actions-c8d038a747
|
|
The build was destined for failure, because cp315 is not yet in the manylinux build. I'll reproduce locally and see if there's a graceful way to resolve, along with a clearer failure when PYTHON_ROOT is not found. The build failed oddly, but the earlier issue was that the detection of PYTHON_ROOT failed quietly:
A test should be added to verify PYTHON_ROOT is set / not empty and fail fast: arrow/ci/docker/python-wheel-manylinux.dockerfile Lines 110 to 111 in 2fb2f79 Build FailureCrossbow failed due to
caused by
|
|
Looking more closely, and considering the history of 3.13 and 3.14: This (nightlys) needs to wait manylinux adds cp315. The alternative is to add a cpython build step or use one of the other pre-built images, but this seems like more work than other projects are investing at this stage. Based on history of 3.13/3.14, this would be after b1 / 2026-05-05. |
|
@github-actions crossbow submit wheel-manylinux-2-28-cp315-cp315-amd64 |
|
|
Retrying/restarting this, now that 3.15b2 is out and available on ManyLinux. |
|
@github-actions crossbow submit wheel-manylinux-2-28-cp315-cp315-amd64 |
|
Revision: 6979e8c Submitted crossbow builds: ursacomputing/crossbow @ actions-60ca234412
|
|
I forgot this issue existed. I took a stab last week as seen here (only local testing): I added rustc and cargo to the images but libcst wasn't able to be built for Py3.15 due to PyO3 failures (no 3.15 support). Removing temporarily building libcst and the stubs build I had a green pass for tests. |
|
Yup, I see same libcst blocker, cleared by this PR: Instagram/LibCST#1454 (status update/edit: it's now merged, waiting on release, a local test of 1.8.7.dev built successfully) I got a good build against that PR: # requirements-wheel-build.txt
libcst @ git+https://github.com/AlexWaygood/LibCST.git@add-315; python_version >= "3.15"# pyproject.toml
"libcst>=1.8.6; python_version < '3.15'",
"libcst; python_version >= '3.15'", # fork doesn't build with the versionHappy to close in favor of your PR, but otherwise will just wait for that libcst PR to land, then update this to build against libcst main for 3.15 testing |
|
The Python 3.15 release candidate is now out, and Instagram/LibCST#1454 has been merged and released in LibCST v1.9.0: https://github.com/Instagram/LibCST/releases/tag/v1.9.0. And PyO3 should be ready for 3.15 as well now: https://github.com/PyO3/pyo3/releases/tag/v0.29.0. |
|
Could someone run this build? I bumped the libcst dependency, and it built locally. Thx: |
|
@github-actions crossbow submit wheel-manylinux-2-28-cp315-cp315-amd64 |
|
Revision: 9ed3dc3 Submitted crossbow builds: ursacomputing/crossbow @ actions-c6a3c83c52
|
|
The libcst 1.9.0 release worked: build step completes, fails on test. A few changes were needed for this next part:
Could someone re-kick that build again? |
|
@github-actions crossbow submit wheel-manylinux-2-28-cp315-cp315-amd64 |
|
Revision: 5de3f4b Submitted crossbow builds: ursacomputing/crossbow @ actions-951837cbe1
|
|
Great! This is ready for a larger crossbow run, to test other platforms + free threading: After that, it's ready for review. This is just to get 3.15 in the nightly builds. |
|
@github-actions crossbow submit cp315 |
|
Revision: 5de3f4b Submitted crossbow builds: ursacomputing/crossbow @ actions-bf280d6adc |
|
The musllinux are because docker-library/python#1123 dropped ALPINE_LINUX 3.22 builds... so 3.22 is stuck on 3.15.0b2. I successfully built/tested locally with 3.23. Question
Changes needed:Line 54 in e611f48 |
|
On the attempt I did some weeks ago with the change on the following is enough, we don't require changing the default on See: https://github.com/apache/arrow/pull/50576/changes#diff-58624af974aef2e2980f03f99d2386e78e3fcb1a53d6a4b06612ded49ea8d449 |
|
Ok, thx, I'll just commit that minimum. What about the .env change? I didn't trace that through. |
Not necessary, the |
|
Thx, and should I keep working on this one / merge in your changes, or do you want to use that other draft? |
I am happy to close mine and help you on this one through review, comments if that is ok with you and you want to keep working on it :) |
|
Ok, sounds good! I'll review/build the macos and windows versions next, and then request another rebuild. |
|
minor note for Windows in order to force the Windows wheels to be rebuilt you'll have to update the following: Lines 97 to 102 in e611f48 |
…(maintenance) bump 3.14.5 to 3.14.7
|
@github-actions crossbow submit wheel-musllinux-1-2-cp315-cp315-amd64 |
|
Revision: 521c6ec Submitted crossbow builds: ursacomputing/crossbow @ actions-ba7d6f12de
|
…s. Other platforms don't use --only-binary so built around this issue.
|
Could you rerun the full cp315 set?
|
|
@github-actions crossbow submit cp315 |
|
Revision: 7bf40dc Submitted crossbow builds: ursacomputing/crossbow @ actions-e1c080acb8 |
Rationale for this change
Add Python 3.15 to the pyarrow nightly builds, so that issues can be detected early in the development cycles of both cpython & pyarrow.
Note:
CFFI andPandas doesn't have nightly 3.15 wheels, and are accordingly excluded.doesn't ship a 3.15 wheel, but is needed to build. It is building from source.What changes are included in this PR?
cffi/pandas for 3.15, as the wheels aren't yet available.2026-08-13 edit
Are these changes tested?
ninja-release-pythonpreset (not maximal)Are there any user-facing changes?
No functional changes, other than allowing the user to use Python 3.15.