From 091aeb44b8d199ca1a3fd6fca5cd66375cad68be Mon Sep 17 00:00:00 2001 From: Ewout ter Hoeven Date: Wed, 14 Aug 2024 17:06:46 +0200 Subject: [PATCH 1/6] CI: Add Python 3.13 jobs to test matrices Enable Python 3.13 testing in the GitHub Action workflows by adding 3.13 jobs to the test matrices. Python 3.13 is now in release candidate phase and ABI stable. --- .github/workflows/fuzz.yml | 3 ++- .github/workflows/release_tests.yml | 2 +- .github/workflows/test.yml | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index 42a399fd0aa..b3ea595c318 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 @@ -31,6 +31,7 @@ jobs: uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Install dependencies run: | diff --git a/.github/workflows/release_tests.yml b/.github/workflows/release_tests.yml index 192ba004f81..6d0af004aae 100644 --- a/.github/workflows/release_tests.yml +++ b/.github/workflows/release_tests.yml @@ -25,7 +25,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: ["3.12"] + python-version: ["3.13"] os: [macOS-latest, ubuntu-latest, windows-latest] steps: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cb6eb3f1307..036208799fa 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,7 +31,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "pypy-3.9"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "pypy-3.9"] os: [ubuntu-latest, macOS-latest, windows-latest] steps: @@ -41,6 +41,7 @@ jobs: uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Install tox run: | From 48ff906df62cca7dda2c586cf69b6222799e590d Mon Sep 17 00:00:00 2001 From: Ewout ter Hoeven Date: Wed, 14 Aug 2024 22:29:04 +0200 Subject: [PATCH 2/6] Add Python 3.13 classifier and changelog entry --- CHANGES.md | 1 + pyproject.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 23ffb7cf4e0..37e75ba64bd 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,6 +5,7 @@ ### Highlights +- Black now officially supports Python 3.13 (#4436) ### Stable style diff --git a/pyproject.toml b/pyproject.toml index 30e59e107b7..aeab33f8299 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,6 +60,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Quality Assurance", ] From 000944c58d2ed87e29ab63b8cb8a815b6c78aed1 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 20:29:30 +0000 Subject: [PATCH 3/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index 37e75ba64bd..6fdc377bef4 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,6 +5,7 @@ ### Highlights + - Black now officially supports Python 3.13 (#4436) ### Stable style From 8238e383b370ea89059e3c83c9bb35747edb2cea Mon Sep 17 00:00:00 2001 From: Ewout ter Hoeven Date: Wed, 14 Aug 2024 22:32:42 +0200 Subject: [PATCH 4/6] CI: Update cibuildwheel to 2.20.0 With cibuildwheel 2.20.0 CPython 3.13 wheels are now built by default - without the CIBW_PRERELEASE_PYTHONS flag. This release includes CPython 3.13.0rc1, which is guaranteed to be ABI compatible with the final release. --- .github/workflows/pypi_upload.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pypi_upload.yml b/.github/workflows/pypi_upload.yml index 26a2fb4fdc5..7b363d88528 100644 --- a/.github/workflows/pypi_upload.yml +++ b/.github/workflows/pypi_upload.yml @@ -48,7 +48,7 @@ jobs: - uses: actions/checkout@v4 - name: Install cibuildwheel and pypyp run: | - pipx install cibuildwheel==2.19.2 + pipx install cibuildwheel==2.20.0 pipx install pypyp==1 - name: generate matrix if: github.event_name != 'pull_request' @@ -89,7 +89,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: pypa/cibuildwheel@v2.19.2 + - uses: pypa/cibuildwheel@v2.20.0 with: only: ${{ matrix.only }} From f428df201edb8a4ca0f4375d264cd6307c42bff7 Mon Sep 17 00:00:00 2001 From: Ewout ter Hoeven Date: Wed, 14 Aug 2024 22:37:25 +0200 Subject: [PATCH 5/6] CI: Build Python 3.13 wheel in matrix Update the "generate wheels matrix" to build Python 3.13 wheels, instead of 3.12, which is now the highest supported version --- .github/workflows/pypi_upload.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pypi_upload.yml b/.github/workflows/pypi_upload.yml index 7b363d88528..6d46cb16fff 100644 --- a/.github/workflows/pypi_upload.yml +++ b/.github/workflows/pypi_upload.yml @@ -73,7 +73,7 @@ jobs: | pyp 'json.dumps({"only": x, "os": "ubuntu-latest"})' } | pyp 'json.dumps(list(map(json.loads, lines)))' > /tmp/matrix env: - CIBW_BUILD: "cp38-* cp312-*" + CIBW_BUILD: "cp38-* cp313-*" CIBW_ARCHS_LINUX: x86_64 - id: set-matrix run: echo "include=$(cat /tmp/matrix)" | tee -a $GITHUB_OUTPUT From 45c9b18477250633b7bcb5b94bb369d9052cee31 Mon Sep 17 00:00:00 2001 From: Ewout ter Hoeven Date: Sat, 17 Aug 2024 20:16:07 +0200 Subject: [PATCH 6/6] CI: Keep using Python 3.12 for PyPI test for now This commit can be reverted once mypyc support Python 3.13 --- .github/workflows/pypi_upload.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pypi_upload.yml b/.github/workflows/pypi_upload.yml index 6d46cb16fff..7b363d88528 100644 --- a/.github/workflows/pypi_upload.yml +++ b/.github/workflows/pypi_upload.yml @@ -73,7 +73,7 @@ jobs: | pyp 'json.dumps({"only": x, "os": "ubuntu-latest"})' } | pyp 'json.dumps(list(map(json.loads, lines)))' > /tmp/matrix env: - CIBW_BUILD: "cp38-* cp313-*" + CIBW_BUILD: "cp38-* cp312-*" CIBW_ARCHS_LINUX: x86_64 - id: set-matrix run: echo "include=$(cat /tmp/matrix)" | tee -a $GITHUB_OUTPUT