From 7ae9be2758ba57d1bdb5dd0dc34fb5d54624d8c0 Mon Sep 17 00:00:00 2001 From: Jordan Borean Date: Mon, 24 Aug 2026 11:43:38 +1000 Subject: [PATCH] Build and test CPython 3.15 - bump Cython Builds a wheel for CPython 3.15 now that rc1 is out. Wheels are produced for macOS and Windows, Linux is still sdist only. Bumps the Cython build version to 3.3.0 that incorporates various bugfixes and CPython 3.15 compatibility. Also bumps the various GitHub Actions versions to the latest available. Signed-off-by: Jordan Borean --- .github/workflows/ci.yml | 76 +++++++++++++++++++------------ .github/workflows/deploy-docs.yml | 4 +- .github/workflows/stale.yml | 2 +- pyproject.toml | 2 +- setup.py | 3 +- 5 files changed, 54 insertions(+), 33 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 53eb2b2d..7cf66ef4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,10 +11,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Select python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: 3.12 @@ -28,7 +28,7 @@ jobs: GSSAPI_COMPILER_ARGS: '' - name: Upload sdist - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: artifact-sdist path: ./dist/*.tar.gz @@ -45,6 +45,10 @@ jobs: include: # Free-threading does not support Limited API/Stable ABI yet # 3.11+ can use the Limited API/Stable ABI + - os: macos-15-intel + version: cp315t-macosx_x86_64 + - os: macos-15 + version: cp315t-macosx_arm64 - os: macos-15-intel version: cp314t-macosx_x86_64 - os: macos-15 @@ -63,6 +67,10 @@ jobs: - os: macos-15 version: cp39-macosx_arm64 + - os: windows-2022 + version: cp315t-win_amd64 + - os: windows-2022 + version: cp315t-win32 - os: windows-2022 version: cp314t-win_amd64 - os: windows-2022 @@ -84,20 +92,26 @@ jobs: steps: - name: Set up environment if: startsWith(matrix.os, 'windows-') - shell: bash + shell: pwsh run: | - choco.exe install \ - --no-progress \ - --yes \ - --ignore-detected-reboot \ - --allow-downgrade \ - --install-arguments "'ADDLOCAL=ALL'" \ - ${{ endsWith(matrix.version, '-win32') && '--x86' || '' }} mitkerberos || true - - echo "C:\Program Files${{ endsWith(matrix.version, '-win32') && ' (x86)' || '' }}\MIT\Kerberos\bin;$PATH" >> $GITHUB_PATH + $arch = '${{ endsWith(matrix.version, '-win32') && '--x86' || '' }}' + $chocoArgs = @( + 'mitkerberos', + '--no-progress', + '--yes', + '--ignore-detected-reboot', + '--allow-downgrade', + '--install-arguments', 'ADDLOCAL=ALL' + if ($arch) { $arch } + ) + choco.exe install @chocoArgs + + 'C:\Program Files${{ endsWith(matrix.version, '-win32') && ' (x86)' || '' }}\MIT\Kerberos\bin' | + Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 + exit 0 - name: Download gssapi sdist - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v8 with: name: artifact-sdist path: ./ @@ -111,14 +125,14 @@ jobs: rm gssapi-*.tar.gz - name: Build wheel - uses: pypa/cibuildwheel@v3.2.1 + uses: pypa/cibuildwheel@v4.2.0 env: CIBW_BUILD: ${{ matrix.version }} CIBW_BUILD_VERBOSITY: 1 CIBW_PRERELEASE_PYTHONS: ${{ matrix.prerelease || 'false' }} - name: Upload wheel - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: path: ./wheelhouse/*.whl name: artifact-wheel-${{ matrix.version }} @@ -131,7 +145,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download gssapi sdist - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v8 with: name: artifact-sdist path: ./dist @@ -188,10 +202,10 @@ jobs: steps: - name: Check out code - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Download built project - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v8 with: pattern: artifact-* merge-multiple: true @@ -214,6 +228,8 @@ jobs: fail-fast: false matrix: name: + - win-py-3.15t + - win-py-3.15 - win-py-3.14t - win-py-3.14 - win-py-3.13 @@ -225,6 +241,10 @@ jobs: - x64 - x86 include: + - name: win-py-3.15t + pyenv: '3.15t-dev' + - name: win-py-3.15 + pyenv: '3.15-dev' - name: win-py-3.14t pyenv: '3.14t' - name: win-py-3.14 @@ -242,17 +262,17 @@ jobs: steps: - name: Check out code - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Download built project - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v8 with: pattern: artifact-* merge-multiple: true path: ./dist - name: Install the right python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.pyenv }} architecture: ${{ matrix.arch }} @@ -271,10 +291,10 @@ jobs: runs-on: macos-latest steps: - name: Check out code - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Download built project - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v8 with: pattern: artifact-* merge-multiple: true @@ -303,10 +323,10 @@ jobs: steps: - name: Check out code - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Download built project - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v8 with: pattern: artifact-* merge-multiple: true @@ -326,7 +346,7 @@ jobs: run: echo "checksum=`ls tag_build/*.sha512sum | awk -F/ '{print $2}'`" >> $GITHUB_OUTPUT - name: Upload tagged build artifact - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: path: tag_build/${{ steps.tarball.outputs.tarball }} name: release-asset @@ -341,7 +361,7 @@ jobs: - name: Create release with tar artifact if: startsWith(github.ref, 'refs/tags/v') - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3 with: files: | tag_build/${{ steps.tarball.outputs.tarball }} diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 939cd748..05896282 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -8,10 +8,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Select python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: 3.12 diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index ff6427b5..5bee68c0 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/stale@v10.1.1 + - uses: actions/stale@v11.0.0 id: stale with: days-before-stale: -1 diff --git a/pyproject.toml b/pyproject.toml index bc57705f..728ccafd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "Cython == 3.2.4", + "Cython == 3.3.0", "setuptools >= 40.6.0", # Start of PEP 517 support for setuptools ] build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py index af21380e..9225a7ea 100755 --- a/setup.py +++ b/setup.py @@ -310,7 +310,7 @@ def gssapi_modules(lst): setup( name='gssapi', - version='1.11.1', + version='1.12.0', author='The Python GSSAPI Team', author_email='jborean93@gmail.com', packages=['gssapi', 'gssapi.raw', 'gssapi.raw._enum_extensions', @@ -336,6 +336,7 @@ def gssapi_modules(lst): 'Programming Language :: Python :: 3.12', 'Programming Language :: Python :: 3.13', 'Programming Language :: Python :: 3.14', + 'Programming Language :: Python :: 3.15', "Programming Language :: Python :: Free Threading :: 2 - Beta", 'Intended Audience :: Developers', 'Programming Language :: Python :: Implementation :: CPython',