diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index 9281c93..f5f92b6 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -28,21 +28,19 @@ jobs: fail-fast: false matrix: os: [ubuntu-24.04, windows-latest, macos-latest] - pyver: [cp38, cp39, cp310, cp311, cp312, cp313, cp313t] + pyver: [cp38, cp39, cp310, cp311, cp312, cp313, cp313t, cp314, cp314t] steps: - name: Checkout repos uses: actions/checkout@v4 - name: Build wheels - uses: pypa/cibuildwheel@v2.23.3 + uses: pypa/cibuildwheel@v3.1.4 env: CIBW_BUILD: ${{matrix.pyver}}-* - CIBW_ENABLE: cpython-freethreading CIBW_ARCHS_LINUX: auto CIBW_ARCHS_MACOS: auto universal2 CIBW_ARCHS_WINDOWS: auto - CIBW_TEST_EXTRAS: test CIBW_TEST_COMMAND: pytest --color=yes -m 'not embedded' {project}/tests # Passing a space in a param is a b*tch on windows. # However embedded tests are skipped anyway there. @@ -52,7 +50,6 @@ jobs: CIBW_TEST_SKIP: >- *-musllinux_* *-macosx_universal2:arm64 - pp*-macosx_* - name: Upload artifacts uses: actions/upload-artifact@v4 @@ -66,7 +63,7 @@ jobs: strategy: fail-fast: false matrix: - pyver: [cp38, cp39, cp310, cp311, cp312, cp313, cp313t] + pyver: [cp38, cp39, cp310, cp311, cp312, cp313, cp313t, cp314, cp314t] arch: [aarch64, ppc64le] steps: @@ -77,10 +74,9 @@ jobs: uses: docker/setup-qemu-action@v3 - name: Build wheels - uses: pypa/cibuildwheel@v2.23.3 + uses: pypa/cibuildwheel@v3.1.4 env: CIBW_BUILD: ${{matrix.pyver}}-* - CIBW_ENABLE: cpython-freethreading CIBW_ARCHS: ${{matrix.arch}} # Tests mostly fail because of some confusion with the python interpreter @@ -104,11 +100,9 @@ jobs: uses: actions/checkout@v4 - name: Build wheels - uses: pypa/cibuildwheel@v2.21.2 + uses: pypa/cibuildwheel@v3.1.4 env: CIBW_BUILD: pp* - CIBW_SKIP: pp37-* - CIBW_TEST_EXTRAS: test CIBW_TEST_COMMAND: pytest --color=yes -m 'not embedded' {project}/tests # Passing a space in a param is a b*tch on windows. # However embedded tests are skipped anyway there. @@ -117,7 +111,6 @@ jobs: # cross-build macos images can't be tested on this runner. CIBW_TEST_SKIP: >- *-musllinux_* - *-macosx_universal2:arm64 pp*-macosx_* - name: Upload artifacts @@ -129,8 +122,6 @@ jobs: build-cross-wheel-pypy: runs-on: ubuntu-24.04 - strategy: - fail-fast: false steps: - name: Checkout repos @@ -140,10 +131,9 @@ jobs: uses: docker/setup-qemu-action@v3 - name: Build wheels - uses: pypa/cibuildwheel@v2.21.2 + uses: pypa/cibuildwheel@v3.1.4 env: CIBW_BUILD: pp* - CIBW_SKIP: pp37-* # Tests mostly fail because of some confusion with the python interpreter diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index da3c803..2590e51 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,6 +23,8 @@ jobs: - "3.12" - "3.13" - "3.13t" + - "3.14" + - "3.14t" - "pypy-3.8" - "pypy-3.9" - "pypy-3.10" @@ -60,6 +62,8 @@ jobs: - "3.12" - "3.13" - "3.13t" + - "3.14" + - "3.14t" architecture: ['x64', 'x86'] steps: @@ -90,6 +94,8 @@ jobs: - "3.12" - "3.13" - "3.13t" + - "3.14" + - "3.14t" os: - macos-latest include: diff --git a/pyproject.toml b/pyproject.toml index a8f43fe..028c551 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,2 +1,9 @@ [tool.black] line-length = 79 + +[tool.cibuildwheel] +enable = [ + "cpython-freethreading", # Only needed for 3.13t, where it was still experimental + "pypy", +] +test-extras = ["test"] diff --git a/setup.py b/setup.py index e20f3d5..9ed4523 100644 --- a/setup.py +++ b/setup.py @@ -76,6 +76,7 @@ Programming Language :: Python :: 3.11 Programming Language :: Python :: 3.12 Programming Language :: Python :: 3.13 +Programming Language :: Python :: 3.14 Operating System :: POSIX :: Linux Operating System :: POSIX :: BSD Operating System :: MacOS :: MacOS X diff --git a/tox.ini b/tox.ini index 4f838fe..0dfc841 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.13t, pypy-3.8, pypy-3.9, pypy-3.10 +envlist = 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.13t, 3.14, 3.14t, pypy-3.8, pypy-3.9, pypy-3.10, pypy-3.11 [testenv] commands = @@ -28,6 +28,12 @@ basepython = python3.13 [testenv:3.13t] basepython = python3.13t +[testenv:3.14] +basepython = python3.14 + +[testenv:3.14t] +basepython = python3.14t + [testenv:pypy-3.8] basepython = pypy3.8 @@ -37,5 +43,8 @@ basepython = pypy3.9 [testenv:pypy-3.10] basepython = pypy3.10 +[testenv:pypy-3.11] +basepython = pypy3.11 + [testenv:xcode] basepython = {env:XCODE_PYTHON}