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",

Reply via email to