From d20436085f8021d71f67e6b1447f54021592a3a4 Mon Sep 17 00:00:00 2001 From: Vlada Dusek Date: Tue, 13 Oct 2026 09:53:03 +0200 Subject: [PATCH] feat: add support for Python 3.15 --- .github/workflows/python-code-checks.yaml | 4 ++-- .github/workflows/python-test.yaml | 10 +++++++--- impit-python/.cargo/config.toml | 5 +++++ impit-python/pyproject.toml | 2 ++ 4 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 impit-python/.cargo/config.toml diff --git a/.github/workflows/python-code-checks.yaml b/.github/workflows/python-code-checks.yaml index e0f819f5..9a6668b6 100644 --- a/.github/workflows/python-code-checks.yaml +++ b/.github/workflows/python-code-checks.yaml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"] steps: - name: Checkout repository @@ -46,7 +46,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"] steps: - name: Checkout repository diff --git a/.github/workflows/python-test.yaml b/.github/workflows/python-test.yaml index 392c9e29..af5e627d 100644 --- a/.github/workflows/python-test.yaml +++ b/.github/workflows/python-test.yaml @@ -60,13 +60,14 @@ jobs: 3.12 3.13 3.14 + 3.15 - name: Build wheels uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1 with: working-directory: impit-python target: ${{ matrix.target }} - args: --release --out dist --interpreter '3.10 3.11 3.12 3.13 3.14 3.14t' ${{ matrix.target == 'x86_64' && '--sdist' || '' }} + args: --release --out dist --interpreter '3.10 3.11 3.12 3.13 3.14 3.14t 3.15 3.15t' ${{ matrix.target == 'x86_64' && '--sdist' || '' }} sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} manylinux: ${{ matrix.target == 'x86_64' && 'auto' || matrix.target == 'aarch64' && '2_28' }} @@ -142,13 +143,14 @@ jobs: 3.12 3.13 3.14 + 3.15 - name: Build wheels uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1 with: working-directory: impit-python target: ${{ matrix.platform.target }} - args: --release --out dist --interpreter '3.10 3.11 3.12 3.13 3.14 3.14t' + args: --release --out dist --interpreter '3.10 3.11 3.12 3.13 3.14 3.14t 3.15 3.15t' sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} manylinux: musllinux_1_2 @@ -219,6 +221,7 @@ jobs: 3.12 3.13 3.14 + 3.15 architecture: ${{ matrix.platform.target }} - name: Build wheels @@ -275,13 +278,14 @@ jobs: 3.12 3.13 3.14 + 3.15 - name: Build wheels uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1 with: working-directory: impit-python target: ${{ matrix.platform.target }} - args: --release --out dist --interpreter '3.10 3.11 3.12 3.13 3.14 3.14t' + args: --release --out dist --interpreter '3.10 3.11 3.12 3.13 3.14 3.14t 3.15 3.15t' sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - name: Upload wheels diff --git a/impit-python/.cargo/config.toml b/impit-python/.cargo/config.toml new file mode 100644 index 00000000..0fcad95e --- /dev/null +++ b/impit-python/.cargo/config.toml @@ -0,0 +1,5 @@ +# Copy of the workspace-level `.cargo/config.toml`. Maturin ships it at the root of the sdist (see `include` +# in `pyproject.toml`), so builds from the sdist get the `reqwest_unstable` cfg that reqwest's `http3` +# feature requires. +[build] +rustflags = "--cfg reqwest_unstable" diff --git a/impit-python/pyproject.toml b/impit-python/pyproject.toml index 33e736d3..5f286dd2 100644 --- a/impit-python/pyproject.toml +++ b/impit-python/pyproject.toml @@ -21,6 +21,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "Topic :: Software Development :: Libraries", ] keywords = [ @@ -62,6 +63,7 @@ docs = [ [tool.maturin] python-source = "python" module-name = "impit" +include = [{ path = ".cargo/config.toml", format = "sdist" }] [tool.ruff] line-length = 120