From 4327537f53ba88b1c36b4c06744b47a57e3ae3a1 Mon Sep 17 00:00:00 2001 From: Theo Mathieu Date: Sat, 10 Oct 2026 13:54:57 +0200 Subject: [PATCH 1/3] Build and test Python 3.15 wheels --- .github/workflows/build.yaml | 11 +++++++++-- .github/workflows/ci.yml | 11 +++++++---- pyproject.toml | 1 + 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e53d643..6287244 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -6,6 +6,7 @@ on: - main tags: - 'v*' + pull_request: workflow_dispatch: permissions: {} @@ -28,7 +29,7 @@ jobs: maturin-version: latest command: build manylinux: auto - args: --release --sdist -i 3.9 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t + args: --release --sdist -i 3.9 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t 3.15 - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: linux-wheels-${{ matrix.target }} @@ -65,6 +66,9 @@ jobs: - os: macos-latest target: x86_64-apple-darwin python-version: "3.14t" + - os: macos-latest + target: x86_64-apple-darwin + python-version: "3.15" - os: macos-latest target: aarch64-apple-darwin python-version: "3.9" @@ -89,6 +93,9 @@ jobs: - os: macos-latest target: aarch64-apple-darwin python-version: "3.14t" + - os: macos-latest + target: aarch64-apple-darwin + python-version: "3.15" steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -114,7 +121,7 @@ jobs: contents: read strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t", "3.15"] steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dd67c03..614a0ab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,7 @@ name: CI on: push: + pull_request: schedule: # Runs every Thursday at 20:23 GMT to avoid bit rot - cron: "20 23 * * 4" @@ -38,7 +39,7 @@ jobs: contents: read strategy: matrix: - python-version: ["3.9", "3.12", "3.13", "3.13t", "3.14", "3.14t"] + python-version: ["3.9", "3.12", "3.13", "3.13t", "3.14", "3.14t", "3.15"] steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -49,6 +50,7 @@ jobs: toolchain: stable - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 + id: python with: python-version: ${{ matrix.python-version }} allow-prereleases: true @@ -58,6 +60,7 @@ jobs: - name: Build and test run: | - uv sync - uv run maturin develop --release - uv run pytest tests/test_sqloxide.py -v + uv sync --python "${{ steps.python.outputs.python-path }}" --no-install-project + uv run --no-sync maturin build --release --out dist + uv pip install --no-index --find-links=dist --only-binary=sqloxide sqloxide + uv run --no-sync pytest tests/test_sqloxide.py -v diff --git a/pyproject.toml b/pyproject.toml index b545fae..27bb9c3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,6 +8,7 @@ requires-python = ">=3.9" classifiers = [ "Development Status :: 3 - Alpha", "Programming Language :: Rust", + "Programming Language :: Python :: 3.15", "Topic :: Database", "License :: OSI Approved :: MIT License", ] From b98e668bfb079b865d723c087f001319b95a2e28 Mon Sep 17 00:00:00 2001 From: Theo Mathieu Date: Sat, 10 Oct 2026 15:21:06 +0200 Subject: [PATCH 2/3] fix: preserve Linux Python 3.13t wheel builds --- .github/workflows/build.yaml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6287244..dd0a998 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -29,7 +29,16 @@ jobs: maturin-version: latest command: build manylinux: auto - args: --release --sdist -i 3.9 3.10 3.11 3.12 3.13 3.13t 3.14 3.14t 3.15 + args: --release --sdist -i 3.9 3.10 3.11 3.12 3.13 3.14 3.14t 3.15 + # Current manylinux images and Maturin no longer support 3.13t. + - uses: PyO3/maturin-action@e10f6c464b90acceb5f640d31beda6d586ba7b4a + with: + target: ${{ matrix.target }} + container: quay.io/pypa/manylinux2014_${{ matrix.target }}:2026.05.02-2 + maturin-version: "1.12.6" + command: build + manylinux: auto + args: --release -i 3.13t - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: linux-wheels-${{ matrix.target }} From e0735547fd85b4a7d75ff6afd532807c81b97aa6 Mon Sep 17 00:00:00 2001 From: Theo Mathieu Date: Sat, 10 Oct 2026 19:28:13 +0200 Subject: [PATCH 3/3] fix: use native ARM runner for legacy wheel container --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index dd0a998..35afe60 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -13,7 +13,7 @@ permissions: {} jobs: linux-wheels: - runs-on: ubuntu-latest + runs-on: ${{ matrix.target == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }} permissions: contents: read strategy: