From ea1aa94eca0e7dadb1f49497de1564b1d0a97da8 Mon Sep 17 00:00:00 2001 From: laughingman7743 Date: Sat, 18 Oct 2025 16:40:15 +0900 Subject: [PATCH 1/2] feat: Add Python 3.14 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add official support for Python 3.14 (released October 7, 2025). Changes: - Add Python 3.14 classifier to pyproject.toml - Add py314 to tox envlist and gh-actions mapping - Add 3.14 to test matrix in GitHub Actions Python 3.14 includes major features: - Free-threaded Python official support (PEP 779) - Deferred evaluation of annotations (PEP 649) - Template string literals (PEP 750) - Experimental JIT compiler Note: setup-uv (v5) has Tier 1 support for Python 3.14, so no additional workarounds should be needed (unlike Python 3.13). Will monitor CI results to confirm. Closes #615 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/workflows/test.yaml | 2 +- pyproject.toml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 5c30a5e7..e2310e85 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] steps: - name: Checkout diff --git a/pyproject.toml b/pyproject.toml index 7588e79f..7d6d3397 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] dynamic = ["version"] @@ -150,7 +151,7 @@ exclude = [ legacy_tox_ini = """ [tox] isolated_build = true -envlist = py{39,310,311,312,313} +envlist = py{39,310,311,312,313,314} [gh-actions] python = @@ -159,6 +160,7 @@ python = 3.11: py311 3.12: py312 3.13: py313 + 3.14: py314 [testenv] allowlist_externals = From 3307ac4735cf08950b1b5e8936c6c815eb24c5c4 Mon Sep 17 00:00:00 2001 From: laughingman7743 Date: Sat, 18 Oct 2025 16:45:09 +0900 Subject: [PATCH 2/2] fix: Add setup-python workaround for Python 3.14 Add the same workaround used for Python 3.13 to Python 3.14 to avoid build failures with missing Python.h headers. This workaround uses actions/setup-python@v5 in addition to setup-uv for Python 3.14 to ensure proper Python development headers are available. --- .github/workflows/test.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index e2310e85..5306dfa4 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -32,13 +32,13 @@ jobs: with: python-version: ${{ matrix.python-version }} enable-cache: true - # TODO: In the case of Python 3.13, the following error occurs, so install Python using setup-python. + # TODO: In the case of Python 3.13 and 3.14, the following error occurs, so install Python using setup-python. # ../meson.build:44:2: ERROR: Problem encountered: Cannot compile # `Python.h`. Perhaps you need to install python-dev|python-devel - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - if: matrix.python-version == '3.13' + if: matrix.python-version == '3.13' || matrix.python-version == '3.14' - run: | make tool