This is an automated email from the ASF dual-hosted git repository.
lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git
The following commit(s) were added to refs/heads/main by this push:
new c1bf990e2 chore(python): drop Python 3.9 (#3573)
c1bf990e2 is described below
commit c1bf990e2c14de8fab8f6310854dd3c6b39a8e95
Author: David Li <[email protected]>
AuthorDate: Tue Oct 14 14:56:25 2025 +0900
chore(python): drop Python 3.9 (#3573)
We can't add Python 3.14 support until PyArrow releases new wheels.
Closes #3547.
---
.github/workflows/native-unix.yml | 2 +-
.github/workflows/native-windows.yml | 2 +-
.github/workflows/packaging.yml | 49 ++++++++++++----------------
ci/scripts/install_python.sh | 3 +-
ci/scripts/python_util.sh | 4 +--
ci/scripts/python_wheel_unix_relocate.sh | 2 +-
python/adbc_driver_bigquery/pyproject.toml | 2 +-
python/adbc_driver_flightsql/pyproject.toml | 2 +-
python/adbc_driver_manager/pyproject.toml | 2 +-
python/adbc_driver_postgresql/pyproject.toml | 2 +-
python/adbc_driver_snowflake/pyproject.toml | 2 +-
python/adbc_driver_sqlite/pyproject.toml | 2 +-
12 files changed, 34 insertions(+), 40 deletions(-)
diff --git a/.github/workflows/native-unix.yml
b/.github/workflows/native-unix.yml
index f46f46734..3c9d83cc3 100644
--- a/.github/workflows/native-unix.yml
+++ b/.github/workflows/native-unix.yml
@@ -544,7 +544,7 @@ jobs:
strategy:
matrix:
os: ["macos-15-intel", "macos-latest", "ubuntu-latest"]
- python: ["3.9", "3.13"]
+ python: ["3.10", "3.13"]
env:
# Required for macOS
#
https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk
diff --git a/.github/workflows/native-windows.yml
b/.github/workflows/native-windows.yml
index c30f7f155..b2bf4d931 100644
--- a/.github/workflows/native-windows.yml
+++ b/.github/workflows/native-windows.yml
@@ -254,7 +254,7 @@ jobs:
strategy:
matrix:
os: ["windows-latest"]
- python: ["3.9", "3.13"]
+ python: ["3.10", "3.13"]
steps:
- uses: actions/checkout@v5
with:
diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml
index 34ea873e7..37b576ae6 100644
--- a/.github/workflows/packaging.yml
+++ b/.github/workflows/packaging.yml
@@ -695,14 +695,6 @@ jobs:
adbc/python/adbc_driver_sqlite/repaired_wheels/*.whl
adbc/python/adbc_driver_snowflake/repaired_wheels/*.whl
- - name: Test wheel 3.9
- env:
- ARCH: ${{ matrix.arch }}
- PLATFORM: ${{ matrix.platform }}
- run: |
- pushd adbc
- env PYTHON=3.9 docker compose run python-wheel-manylinux-test
-
- name: Test wheel 3.10
env:
ARCH: ${{ matrix.arch }}
@@ -735,6 +727,14 @@ jobs:
pushd adbc
env PYTHON=3.13 docker compose run python-wheel-manylinux-test
+ # - name: Test wheel 3.14
+ # env:
+ # ARCH: ${{ matrix.arch }}
+ # PLATFORM: ${{ matrix.platform }}
+ # run: |
+ # pushd adbc
+ # env PYTHON=3.14 docker compose run python-wheel-manylinux-test
+
python-macos:
name: "Python ${{ matrix.arch }} macOS"
runs-on: ${{ matrix.os }}
@@ -751,7 +751,7 @@ jobs:
arch: arm64v8
env:
MACOSX_DEPLOYMENT_TARGET: "10.15"
- PYTHON:
"/Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10"
+ PYTHON:
"/Library/Frameworks/Python.framework/Versions/3.13/bin/python3.13"
# Where to install vcpkg
VCPKG_ROOT: "${{ github.workspace }}/vcpkg"
steps:
@@ -807,13 +807,6 @@ jobs:
cache: true
cache-dependency-path: adbc/go/adbc/go.sum
- - name: Install Python (AMD64 only)
- if: matrix.arch == 'amd64'
- run: |
- pushd adbc
- sudo ci/scripts/install_python.sh macos 3.9
- popd
-
- name: Install Python
run: |
pushd adbc
@@ -821,6 +814,7 @@ jobs:
sudo ci/scripts/install_python.sh macos 3.11
sudo ci/scripts/install_python.sh macos 3.12
sudo ci/scripts/install_python.sh macos 3.13
+ # sudo ci/scripts/install_python.sh macos 3.14
popd
- name: Downgrade XCode
@@ -853,17 +847,6 @@ jobs:
adbc/python/adbc_driver_sqlite/repaired_wheels/*.whl
adbc/python/adbc_driver_snowflake/repaired_wheels/*.whl
- - name: Test wheel 3.9
- if: matrix.arch == 'amd64'
- run: |
- pushd adbc
-
- /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -m
venv test-env-39
- source test-env-39/bin/activate
- export PYTHON_VERSION=3.9
- ./ci/scripts/python_wheel_unix_test.sh $(pwd)
- deactivate
-
- name: Test wheel 3.10
run: |
pushd adbc
@@ -904,6 +887,16 @@ jobs:
./ci/scripts/python_wheel_unix_test.sh $(pwd)
deactivate
+ # - name: Test wheel 3.14
+ # run: |
+ # pushd adbc
+
+ # /Library/Frameworks/Python.framework/Versions/3.14/bin/python3.14
-m venv test-env-314
+ # source test-env-314/bin/activate
+ # export PYTHON_VERSION=3.14
+ # ./ci/scripts/python_wheel_unix_test.sh $(pwd)
+ # deactivate
+
- name: Assemble logs
if: failure()
run: |
@@ -931,7 +924,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- python_version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
+ python_version: ["3.10", "3.11", "3.12", "3.13"]
env:
PYTHON_VERSION: "${{ matrix.python_version }}"
# Where to install vcpkg
diff --git a/ci/scripts/install_python.sh b/ci/scripts/install_python.sh
index 946a579de..acabe4f82 100755
--- a/ci/scripts/install_python.sh
+++ b/ci/scripts/install_python.sh
@@ -31,7 +31,8 @@ versions=([3.9]=3.9.13
[3.10]=3.10.11
[3.11]=3.11.8
[3.12]=3.12.2
- [3.13]=3.13.1)
+ [3.13]=3.13.1
+ [3.14]=3.14.0)
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <platform> <version>"
diff --git a/ci/scripts/python_util.sh b/ci/scripts/python_util.sh
index 7fab0abe0..5646a9fe0 100644
--- a/ci/scripts/python_util.sh
+++ b/ci/scripts/python_util.sh
@@ -133,8 +133,8 @@ function setup_build_vars {
export CIBW_BUILD='*-manylinux_*'
export CIBW_PLATFORM="linux"
fi
- # No PyPy, no Python 3.8
- export CIBW_SKIP="pp* cp38-* ${CIBW_SKIP}"
+ # No PyPy, no Python 3.8, no Python 3.9
+ export CIBW_SKIP="pp* cp38-* cp39-* ${CIBW_SKIP}"
# Make sure our manylinux version doesn't creep up (this only matters for
# the driver manager)
export CIBW_MANYLINUX_X86_64_IMAGE="manylinux2014"
diff --git a/ci/scripts/python_wheel_unix_relocate.sh
b/ci/scripts/python_wheel_unix_relocate.sh
index db8f71154..08eaba927 100755
--- a/ci/scripts/python_wheel_unix_relocate.sh
+++ b/ci/scripts/python_wheel_unix_relocate.sh
@@ -56,7 +56,7 @@ fi
echo "=== Relocating wheels ==="
# https://github.com/pypa/pip/issues/7555
# Get the latest pip so we have in-tree-build by default
-python -m pip install --upgrade pip auditwheel 'cibuildwheel>=2.21.2' delocate
setuptools wheel
+python -m pip install --upgrade pip auditwheel 'cibuildwheel>3' delocate
setuptools wheel
# Build with Cython debug info
export ADBC_BUILD_TYPE="debug"
diff --git a/python/adbc_driver_bigquery/pyproject.toml
b/python/adbc_driver_bigquery/pyproject.toml
index d5a69e368..676872bbe 100644
--- a/python/adbc_driver_bigquery/pyproject.toml
+++ b/python/adbc_driver_bigquery/pyproject.toml
@@ -22,7 +22,7 @@ authors = [{name = "Apache Arrow Developers", email =
"[email protected]"}]
license = "Apache-2.0"
license-files = ["LICENSE.txt", "NOTICE.txt"]
readme = "README.md"
-requires-python = ">=3.9"
+requires-python = ">=3.10"
dynamic = ["version"]
dependencies = [
"adbc-driver-manager",
diff --git a/python/adbc_driver_flightsql/pyproject.toml
b/python/adbc_driver_flightsql/pyproject.toml
index f9d4e205e..71fe5c468 100644
--- a/python/adbc_driver_flightsql/pyproject.toml
+++ b/python/adbc_driver_flightsql/pyproject.toml
@@ -22,7 +22,7 @@ authors = [{name = "Apache Arrow Developers", email =
"[email protected]"}]
license = "Apache-2.0"
license-files = ["LICENSE.txt", "NOTICE.txt"]
readme = "README.md"
-requires-python = ">=3.9"
+requires-python = ">=3.10"
dynamic = ["version"]
dependencies = [
"adbc-driver-manager",
diff --git a/python/adbc_driver_manager/pyproject.toml
b/python/adbc_driver_manager/pyproject.toml
index 6184963a7..704707926 100644
--- a/python/adbc_driver_manager/pyproject.toml
+++ b/python/adbc_driver_manager/pyproject.toml
@@ -22,7 +22,7 @@ authors = [{name = "Apache Arrow Developers", email =
"[email protected]"}]
license = "Apache-2.0"
license-files = ["LICENSE.txt", "NOTICE.txt"]
readme = "README.md"
-requires-python = ">=3.9"
+requires-python = ">=3.10"
dynamic = ["version"]
dependencies = ["typing-extensions"]
diff --git a/python/adbc_driver_postgresql/pyproject.toml
b/python/adbc_driver_postgresql/pyproject.toml
index 696e33af2..089501c8b 100644
--- a/python/adbc_driver_postgresql/pyproject.toml
+++ b/python/adbc_driver_postgresql/pyproject.toml
@@ -22,7 +22,7 @@ authors = [{name = "Apache Arrow Developers", email =
"[email protected]"}]
license = "Apache-2.0"
license-files = ["LICENSE.txt", "NOTICE.txt"]
readme = "README.md"
-requires-python = ">=3.9"
+requires-python = ">=3.10"
dynamic = ["version"]
dependencies = [
"adbc-driver-manager",
diff --git a/python/adbc_driver_snowflake/pyproject.toml
b/python/adbc_driver_snowflake/pyproject.toml
index 1da14155e..4a65ffb3b 100644
--- a/python/adbc_driver_snowflake/pyproject.toml
+++ b/python/adbc_driver_snowflake/pyproject.toml
@@ -22,7 +22,7 @@ authors = [{name = "Apache Arrow Developers", email =
"[email protected]"}]
license = "Apache-2.0"
license-files = ["LICENSE.txt", "NOTICE.txt"]
readme = "README.md"
-requires-python = ">=3.9"
+requires-python = ">=3.10"
dynamic = ["version"]
dependencies = [
"adbc-driver-manager",
diff --git a/python/adbc_driver_sqlite/pyproject.toml
b/python/adbc_driver_sqlite/pyproject.toml
index f1efb1f7c..8274f2b91 100644
--- a/python/adbc_driver_sqlite/pyproject.toml
+++ b/python/adbc_driver_sqlite/pyproject.toml
@@ -22,7 +22,7 @@ authors = [{name = "Apache Arrow Developers", email =
"[email protected]"}]
license = "Apache-2.0"
license-files = ["LICENSE.txt", "NOTICE.txt"]
readme = "README.md"
-requires-python = ">=3.9"
+requires-python = ">=3.10"
dynamic = ["version"]
dependencies = [
"adbc-driver-manager",