From cdee3f0f4e45b10c1e4df223f2e3277fd520e65d Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 14 Oct 2026 10:23:32 +0000 Subject: [PATCH 1/3] Drop Python 3.10 support Python 3.10 reached end of life in October 2026. Require Python >= 3.11 and remove 3.10 from the CI test matrix. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01TXS3w3s7AYQ1boiTDacaFh --- .github/workflows/python-package.yml | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index f4328ce..c76b276 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 diff --git a/pyproject.toml b/pyproject.toml index f73a444..94c94b1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ authors = [ ] description = "Import complex XML files to a relational database" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", From 111bbfe4eb949167a290b0e76c2ac8c888be03c3 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 14 Oct 2026 10:27:35 +0000 Subject: [PATCH 2/3] Add Python 3.15 to the test matrix Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01TXS3w3s7AYQ1boiTDacaFh --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index c76b276..ee02651 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.11", "3.12", "3.13", "3.14"] + python-version: ["3.11", "3.12", "3.13", "3.14", "3.15"] steps: - uses: actions/checkout@v4 From d73c9425af56190df79369329fc626e8b5f7592b Mon Sep 17 00:00:00 2001 From: martinv13 Date: Fri, 16 Oct 2026 16:06:23 +0200 Subject: [PATCH 3/3] Upgrade GitHub Actions, runners and service images - Bump actions/checkout to v7, actions/setup-python to v7, actions/cache to v6, actions/upload-artifact to v7 and actions/download-artifact to v8 - Run single-version workflows on Python 3.14 - Run MSSQL, MySQL and PostgreSQL integration tests on ubuntu-26.04 - Use SQL Server 2022 and MySQL 9.7 (current LTS) service images - Replace szenius/set-timezone (Node 20) with a TZ env var - Allow the Python 3.15 job to fail until all dependencies ship wheels Co-Authored-By: Claude Opus 5.5 --- .github/workflows/integration-tests-duckdb.yml | 14 +++++--------- .github/workflows/integration-tests-mssql.yml | 12 ++++++------ .github/workflows/integration-tests-mysql.yml | 12 ++++++------ .github/workflows/integration-tests-postgres.yml | 10 +++++----- .github/workflows/publish-to-gh-pages.yml | 8 ++++---- .github/workflows/publish-to-pypi.yml | 12 ++++++------ .github/workflows/python-package.yml | 6 ++++-- .github/workflows/update-requirements.yml | 8 ++++---- 8 files changed, 40 insertions(+), 42 deletions(-) diff --git a/.github/workflows/integration-tests-duckdb.yml b/.github/workflows/integration-tests-duckdb.yml index 7c63c5b..452628f 100644 --- a/.github/workflows/integration-tests-duckdb.yml +++ b/.github/workflows/integration-tests-duckdb.yml @@ -13,17 +13,12 @@ jobs: steps: - name: Check out repository code - uses: actions/checkout@v4 + uses: actions/checkout@v7 - - name: Set up Python 3.12 - uses: actions/setup-python@v5 + - name: Set up Python 3.14 + uses: actions/setup-python@v7 with: - python-version: 3.12 - - - name: Set timezone required for tests - uses: szenius/set-timezone@v2.0 - with: - timezoneLinux: "Europe/Paris" + python-version: 3.14 - name: Install package run: | @@ -35,4 +30,5 @@ jobs: pytest tests -x env: DB_STRING: "duckdb:///:memory:" + TZ: "Europe/Paris" diff --git a/.github/workflows/integration-tests-mssql.yml b/.github/workflows/integration-tests-mssql.yml index 1546179..8aa9c71 100644 --- a/.github/workflows/integration-tests-mssql.yml +++ b/.github/workflows/integration-tests-mssql.yml @@ -9,10 +9,10 @@ on: jobs: integration-tests: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 services: mssql: - image: mcr.microsoft.com/mssql/server:2019-latest + image: mcr.microsoft.com/mssql/server:2022-latest env: SA_PASSWORD: MyTestPassword1 ACCEPT_EULA: 'Y' @@ -21,12 +21,12 @@ jobs: steps: - name: Check out repository code - uses: actions/checkout@v4 + uses: actions/checkout@v7 - - name: Set up Python 3.12 - uses: actions/setup-python@v5 + - name: Set up Python 3.14 + uses: actions/setup-python@v7 with: - python-version: 3.12 + python-version: 3.14 - name: Install dependencies run: | diff --git a/.github/workflows/integration-tests-mysql.yml b/.github/workflows/integration-tests-mysql.yml index d3ba942..37250a1 100644 --- a/.github/workflows/integration-tests-mysql.yml +++ b/.github/workflows/integration-tests-mysql.yml @@ -9,10 +9,10 @@ on: jobs: integration-tests: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 services: mysql: - image: mysql:8.0 + image: mysql:9.7 command: --local-infile=1 env: MYSQL_DATABASE: test_db @@ -36,12 +36,12 @@ jobs: mysql --host 127.0.0.1 --port 3306 -uroot -psecretroot -e "SHOW VARIABLES LIKE 'local_infile'" - name: Check out repository code - uses: actions/checkout@v4 + uses: actions/checkout@v7 - - name: Set up Python 3.12 - uses: actions/setup-python@v5 + - name: Set up Python 3.14 + uses: actions/setup-python@v7 with: - python-version: 3.12 + python-version: 3.14 - name: Install dependencies run: | diff --git a/.github/workflows/integration-tests-postgres.yml b/.github/workflows/integration-tests-postgres.yml index 702fe16..3ab7b88 100644 --- a/.github/workflows/integration-tests-postgres.yml +++ b/.github/workflows/integration-tests-postgres.yml @@ -9,7 +9,7 @@ on: jobs: integration-tests: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: matrix: include: @@ -37,12 +37,12 @@ jobs: steps: - name: Check out repository code - uses: actions/checkout@v4 + uses: actions/checkout@v7 - - name: Set up Python 3.12 - uses: actions/setup-python@v5 + - name: Set up Python 3.14 + uses: actions/setup-python@v7 with: - python-version: 3.12 + python-version: 3.14 - name: Install dependencies run: | diff --git a/.github/workflows/publish-to-gh-pages.yml b/.github/workflows/publish-to-gh-pages.yml index 9f86e23..e8690ea 100644 --- a/.github/workflows/publish-to-gh-pages.yml +++ b/.github/workflows/publish-to-gh-pages.yml @@ -12,16 +12,16 @@ jobs: deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Configure Git Credentials run: | git config user.name github-actions[bot] git config user.email 41898282+github-actions[bot]@users.noreply.github.com - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v7 with: - python-version: 3.12 + python-version: 3.14 - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - - uses: actions/cache@v4 + - uses: actions/cache@v6 with: key: mkdocs-material-${{ env.cache_id }} path: .cache diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index c71cae6..aefffb0 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -12,11 +12,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v7 with: - python-version: "3.12" + python-version: "3.14" - name: Install pypa/build run: >- python3 -m @@ -26,7 +26,7 @@ jobs: - name: Build a binary wheel and a source tarball run: python3 -m build - name: Store the distribution packages - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: python-package-distributions path: dist/ @@ -45,7 +45,7 @@ jobs: steps: - name: Download all the dists - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: python-package-distributions path: dist/ @@ -67,7 +67,7 @@ jobs: steps: - name: Download all the dists - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: python-package-distributions path: dist/ diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index ee02651..d0435bc 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -14,15 +14,17 @@ jobs: build: runs-on: ubuntu-latest + # Python 3.15 is experimental until all dependencies publish wheels for it + continue-on-error: ${{ matrix.python-version == '3.15' }} strategy: fail-fast: false matrix: python-version: ["3.11", "3.12", "3.13", "3.14", "3.15"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/.github/workflows/update-requirements.yml b/.github/workflows/update-requirements.yml index 796e162..1de1ef3 100644 --- a/.github/workflows/update-requirements.yml +++ b/.github/workflows/update-requirements.yml @@ -18,11 +18,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - name: Set up Python 3.12 - uses: actions/setup-python@v5 + - uses: actions/checkout@v7 + - name: Set up Python 3.14 + uses: actions/setup-python@v7 with: - python-version: 3.12 + python-version: 3.14 - name: Install dependencies run: | python -m pip install --upgrade pip