Skip to content

GH-50410: [Python][Packaging] Drop Python 3.10 support#50411

Open
raulcd wants to merge 9 commits into
apache:mainfrom
raulcd:GH-50410
Open

GH-50410: [Python][Packaging] Drop Python 3.10 support#50411
raulcd wants to merge 9 commits into
apache:mainfrom
raulcd:GH-50410

Conversation

@raulcd

@raulcd raulcd commented Jul 8, 2026

Copy link
Copy Markdown
Member

Rationale for this change

Python 3.10 is End of Support on October 2026. We can drop support on PyArrow 26.0.0.
See: https://endoflife.date/python

What changes are included in this PR?

Remove support for 3.10. Update minimum required Python version and update some CI jobs to use the minimum Python supported version.
Some CI jobs using default Python 3.10 (Ubuntu 20.04) have been bumped.

Are these changes tested?

They will be tested via CI and Archery

Are there any user-facing changes?

Yes in terms of not supporting older versions of Python. This will be a breaking change for some users but not for the API itself

Comment thread dev/tasks/tasks.yml Outdated
{% for python_version, pandas_version, numpy_version, cache_leaf in [("3.10", "1.3.4", "1.21.2", True),
("3.11", "latest", "latest", False),
("3.12", "latest", "1.26", False),
{% for python_version, pandas_version, numpy_version, cache_leaf in [("3.11", "1.5.2", "1.21.2", True),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have a separate issue open for NumPy 1.x? According to https://endoflife.date/numpy, only NumPy 2+ is currently supported upstream. Removing our support for NumPy 1.x could simplify some things quite a bit.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have one:

I am going to mark all those issues as 26.0.0 to see if we can track them to bump all of them.

@github-actions github-actions Bot added awaiting changes Awaiting changes and removed awaiting committer review Awaiting committer review labels Jul 8, 2026
@raulcd

raulcd commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

@github-actions crossbow submit -g python

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Revision: b05b2c9

Submitted crossbow builds: ursacomputing/crossbow @ actions-bb925f49f5

Task Status
example-python-minimal-build-fedora-conda GitHub Actions
example-python-minimal-build-ubuntu-venv GitHub Actions
test-conda-python-3.11 GitHub Actions
test-conda-python-3.11-dask-latest GitHub Actions
test-conda-python-3.11-dask-upstream_devel GitHub Actions
test-conda-python-3.11-hdfs-2.9.2 GitHub Actions
test-conda-python-3.11-hdfs-3.2.1 GitHub Actions
test-conda-python-3.11-hypothesis GitHub Actions
test-conda-python-3.11-pandas-1.5.2-numpy-1.23.2 GitHub Actions
test-conda-python-3.11-spark-master GitHub Actions
test-conda-python-3.12 GitHub Actions
test-conda-python-3.12-pandas-latest-numpy-latest GitHub Actions
test-conda-python-3.13 GitHub Actions
test-conda-python-3.13-pandas-latest-numpy-1.26 GitHub Actions
test-conda-python-3.13-pandas-latest-numpy-latest GitHub Actions
test-conda-python-3.14 GitHub Actions
test-conda-python-3.14-cpython-debug GitHub Actions
test-conda-python-3.14-pandas-nightly-numpy-nightly GitHub Actions
test-conda-python-3.14-pandas-upstream_devel-numpy-nightly GitHub Actions
test-conda-python-emscripten GitHub Actions
test-debian-13-python-3-amd64 GitHub Actions
test-debian-13-python-3-i386 GitHub Actions
test-fedora-42-python-3 GitHub Actions
test-ubuntu-22.04-python-3 GitHub Actions
test-ubuntu-24.04-python-3 GitHub Actions

@github-actions github-actions Bot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Jul 8, 2026
@raulcd

raulcd commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

@github-actions crossbow submit test-conda-python-3.13-pandas-latest-numpy-1.26.2

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Revision: 5cbeee1

Submitted crossbow builds: ursacomputing/crossbow @ actions-1a7772d721

Task Status
test-conda-python-3.13-pandas-latest-numpy-1.26.2 GitHub Actions

@raulcd

raulcd commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

@github-actions crossbow submit test-ubuntu-*-python-3

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Unexpected end of template. Jinja was looking for the following tags: 'endfor' or 'else'. The innermost block that needs to be closed is 'for'.
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/28935785863

@raulcd

raulcd commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

@github-actions crossbow submit test-ubuntu-*-python-3

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Revision: 554da17

Submitted crossbow builds: ursacomputing/crossbow @ actions-e5f73ed671

Task Status
test-ubuntu-24.04-python-3 GitHub Actions
test-ubuntu-26.04-python-3 GitHub Actions

@raulcd

raulcd commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

@github-actions crossbow submit test-ubuntu-24.04-python-3

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Revision: acb4527

Submitted crossbow builds: ursacomputing/crossbow @ actions-8c1a26ad8a

Task Status
test-ubuntu-24.04-python-3 GitHub Actions

@raulcd

raulcd commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

@github-actions crossbow submit -g wheel

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Revision: d0b836c

Submitted crossbow builds: ursacomputing/crossbow @ actions-b13f71ef32

Task Status
python-sdist GitHub Actions
wheel-macos-monterey-cp311-cp311-amd64 GitHub Actions
wheel-macos-monterey-cp311-cp311-arm64 GitHub Actions
wheel-macos-monterey-cp312-cp312-amd64 GitHub Actions
wheel-macos-monterey-cp312-cp312-arm64 GitHub Actions
wheel-macos-monterey-cp313-cp313-amd64 GitHub Actions
wheel-macos-monterey-cp313-cp313-arm64 GitHub Actions
wheel-macos-monterey-cp314-cp314-amd64 GitHub Actions
wheel-macos-monterey-cp314-cp314-arm64 GitHub Actions
wheel-macos-monterey-cp314-cp314t-amd64 GitHub Actions
wheel-macos-monterey-cp314-cp314t-arm64 GitHub Actions
wheel-manylinux-2-28-cp311-cp311-amd64 GitHub Actions
wheel-manylinux-2-28-cp311-cp311-arm64 GitHub Actions
wheel-manylinux-2-28-cp312-cp312-amd64 GitHub Actions
wheel-manylinux-2-28-cp312-cp312-arm64 GitHub Actions
wheel-manylinux-2-28-cp313-cp313-amd64 GitHub Actions
wheel-manylinux-2-28-cp313-cp313-arm64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314-amd64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314-arm64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314t-amd64 GitHub Actions
wheel-manylinux-2-28-cp314-cp314t-arm64 GitHub Actions
wheel-musllinux-1-2-cp311-cp311-amd64 GitHub Actions
wheel-musllinux-1-2-cp311-cp311-arm64 GitHub Actions
wheel-musllinux-1-2-cp312-cp312-amd64 GitHub Actions
wheel-musllinux-1-2-cp312-cp312-arm64 GitHub Actions
wheel-musllinux-1-2-cp313-cp313-amd64 GitHub Actions
wheel-musllinux-1-2-cp313-cp313-arm64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314-amd64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314-arm64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314t-amd64 GitHub Actions
wheel-musllinux-1-2-cp314-cp314t-arm64 GitHub Actions
wheel-windows-cp311-cp311-amd64 GitHub Actions
wheel-windows-cp312-cp312-amd64 GitHub Actions
wheel-windows-cp313-cp313-amd64 GitHub Actions
wheel-windows-cp314-cp314-amd64 GitHub Actions
wheel-windows-cp314-cp314t-amd64 GitHub Actions

@raulcd

raulcd commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

@github-actions crossbow submit python-sdist

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Revision: c41028a

Submitted crossbow builds: ursacomputing/crossbow @ actions-01ee1cf1ce

Task Status
python-sdist GitHub Actions

@raulcd raulcd marked this pull request as ready for review July 8, 2026 15:42
Copilot AI review requested due to automatic review settings July 8, 2026 15:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Drops Python 3.10 support across PyArrow packaging, documentation, CI, and release verification tooling in preparation for the 26.0.0 release, aligning the repository’s minimum supported Python version to 3.11.

Changes:

  • Bumped minimum supported Python version to 3.11 (packaging metadata, Archery tooling, docs, and helper scripts).
  • Updated CI/Crossbow/Archery configurations and Docker images to stop using Python 3.10 and to use newer baseline images where needed.
  • Updated release verification scripts (shell + Windows batch) and tasks definitions to remove Python 3.10 wheel/sdist testing.

Reviewed changes

Copilot reviewed 32 out of 32 changed files in this pull request and generated no comments.

Show a summary per file
File Description
r/tests/testthat/test-python.R Updates reticulate test skips to reflect Python >= 3.11 support.
python/pyproject.toml Raises requires-python and updates classifiers/pyright baseline to 3.11+.
python/examples/minimal_build/build_conda.sh Bumps example conda build Python version to 3.11.
docs/source/python/install.rst Updates stated Python compatibility and optional dependency minimums.
docs/source/developers/continuous_integration/crossbow.rst Updates documented minimum Python version for Crossbow usage.
docs/source/developers/continuous_integration/archery.rst Updates documented minimum Python version for Archery.
dev/tasks/tasks.yml Removes 3.10 wheels/integration variants and refreshes Python/pandas/numpy CI matrices.
dev/tasks/python-wheels/github.linux.yml Shifts Ubuntu wheel test gating from 3.10 to 3.11.
dev/tasks/python-sdist/github.yml Moves sdist test job to Ubuntu 24.04 baseline.
dev/release/verify-release-candidate.sh Removes 3.10 from release-candidate wheel verification.
dev/release/verify-release-candidate.bat Updates Windows RC verification default Python to 3.11.
dev/release/verify-release-candidate-wheels.bat Drops 3.10 wheel verification and adds 3.14.
dev/archery/setup.py Enforces Archery install/runtime minimum Python 3.11.
compose.yaml Updates documented supported PYTHON values for compose images.
ci/scripts/r_install_system_dependencies.sh Updates OpenSUSE Python package/symlinks to 3.11.
ci/scripts/install_python.sh Removes 3.10 from installable versions and refreshes patch versions.
ci/docker/python-wheel-windows-vs2022.dockerfile Updates default Python build ARG to 3.11.
ci/docker/python-wheel-windows-test-vs2022.dockerfile Removes 3.10 handling and updates version pins for 3.11+.
ci/docker/python-wheel-musllinux.dockerfile Switches base Python override to cp311.
ci/docker/python-wheel-musllinux-test.dockerfile Removes special-case logic that only existed for 3.10 constraints.
ci/docker/python-wheel-manylinux.dockerfile Switches base Python override to cp311.
ci/docker/cpp-jni.dockerfile Switches base Python override to cp311.
ci/docker/conda-python*.dockerfile Updates default conda Python ARGs to 3.11 across images.
ci/docker/conda-cpp.dockerfile Switches default Python ARG to 3.11.
.github/workflows/python.yml Updates CI matrix to drop 3.10 and refreshes tested Python/pandas/numpy combos.
.env Updates default PYTHON/PYTHON_IMAGE_TAG/PYTHON_ABI_TAG to 3.11/cp311.

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.

3 participants