Skip to content

Conversation

@paultiq
Copy link
Contributor

@paultiq paultiq commented Nov 20, 2025

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 and Pandas don't have nightly 3.15 wheels, and are accordingly excluded.
  • Numpy doesn't ship a 3.15 wheel, but is needed to build. It is building from source.

What changes are included in this PR?

  • Adding cp315/cp315t to the build matrix
  • Excluding cffi/pandas for 3.15, as the wheels aren't yet available.

Are these changes tested?

  • Yes, tested on a local Linux build using the ninja-release-python preset (not maximal)

Are there any user-facing changes?

No functional changes, other than allowing the user to use Python 3.15.

@github-actions
Copy link

⚠️ GitHub issue #48172 has been automatically assigned in GitHub to PR creator.

@raulcd
Copy link
Member

raulcd commented Nov 21, 2025

@github-actions crossbow submit wheel-manylinux-2-28-cp315-cp315-amd64

@github-actions
Copy link

Revision: 2d2a557

Submitted crossbow builds: ursacomputing/crossbow @ actions-c8d038a747

Task Status
wheel-manylinux-2-28-cp315-cp315-amd64 GitHub Actions

@paultiq
Copy link
Contributor Author

paultiq commented Nov 21, 2025

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:

2025-11-21T08:07:23.9363828Z #20 [stage-0 13/16] RUN PYTHON_ROOT=$(find /opt/python -name cp315-cp315) && echo "export PATH=$PYTHON_ROOT/bin:$PATH" >> /etc/profile.d/python.sh
...
2025-11-21T08:08:01.3779653Z -- Found Python3: /bin/python3.11 (found version "3.11.11") found components: Interpreter

A test should be added to verify PYTHON_ROOT is set / not empty and fail fast:

RUN PYTHON_ROOT=$(find /opt/python -name cp${PYTHON_VERSION/./}-${PYTHON_ABI_TAG}) && \
echo "export PATH=$PYTHON_ROOT/bin:\$PATH" >> /etc/profile.d/python.sh

Build Failure

Crossbow failed due to

lto1: fatal error: bytecode stream in file ‘src/arrow/CMakeFiles/arrow_vendored.dir/Unity/unity_1_c.c.o’ generated with GCC compiler older than 10.0

caused by

2025-11-21T08:08:00.9596950Z -- The C compiler identification is GNU 8.5.0
. 2025-11-21T08:08:01.0402969Z -- The CXX compiler identification is GNU 14.2.1

@paultiq
Copy link
Contributor Author

paultiq commented Nov 21, 2025

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants