Skip to content

Commit

Permalink
Add preliminary support for Python 3.13a3 (#70)
Browse files Browse the repository at this point in the history
  • Loading branch information
icemac authored Jan 23, 2024
1 parent 6e8318a commit 7616aa4
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 20 deletions.
50 changes: 32 additions & 18 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ jobs:
fail-fast: false
matrix:
python-version:
- "pypy-3.9"
- "pypy-3.10"
- "3.7"
- "3.8"
- "3.9"
Expand All @@ -107,13 +107,13 @@ jobs:
os: [ubuntu-20.04, macos-11]
exclude:
- os: macos-11
python-version: "pypy-3.9"
python-version: "pypy-3.10"

steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
###
Expand All @@ -135,7 +135,18 @@ jobs:
restore-keys: |
${{ runner.os }}-pip-
- name: Install Build Dependencies (3.13.0-alpha - 3.13.0)
if: matrix.python-version == '3.13.0-alpha - 3.13.0'
run: |
pip install -U pip
pip install -U setuptools wheel twine
# cffi will probably have no public release until a Python 3.13 beta
# or even RC release, see https://github.com/python-cffi/cffi/issues/23
pip install -U "cffi @ https://github.com/python-cffi/cffi/archive/refs/heads/main.zip"
# twine has no release for 3.13, yet, see https://github.com/pypa/twine/issues/1030
pip install -U "git+https://github.com/pypa/twine.git#egg=twine"
- name: Install Build Dependencies
if: matrix.python-version != '3.13.0-alpha - 3.13.0'
run: |
pip install -U pip
pip install -U setuptools wheel twine cffi
Expand Down Expand Up @@ -199,7 +210,7 @@ jobs:
- name: Upload ExtensionClass wheel (macOS x86_64)
if: >
startsWith(runner.os, 'Mac')
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ExtensionClass-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/*x86_64.whl
Expand All @@ -208,7 +219,7 @@ jobs:
startsWith(runner.os, 'Mac')
&& !(startsWith(matrix.python-version, 'pypy')
|| matrix.python-version == '3.7')
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
# The arm64 wheel is uploaded with a different name just so it can be
# manually downloaded when desired. The wheel itself *cannot* be tested
Expand All @@ -218,7 +229,7 @@ jobs:
- name: Upload ExtensionClass wheel (all other platforms)
if: >
!startsWith(runner.os, 'Mac')
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ExtensionClass-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/*whl
Expand All @@ -244,7 +255,7 @@ jobs:
fail-fast: false
matrix:
python-version:
- "pypy-3.9"
- "pypy-3.10"
- "3.7"
- "3.8"
- "3.9"
Expand All @@ -255,13 +266,13 @@ jobs:
os: [ubuntu-20.04, macos-11]
exclude:
- os: macos-11
python-version: "pypy-3.9"
python-version: "pypy-3.10"

steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
###
Expand All @@ -284,14 +295,17 @@ jobs:
${{ runner.os }}-pip-
- name: Download ExtensionClass wheel
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: ExtensionClass-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/
- name: Install ExtensionClass 3.13.0-alpha - 3.13.0
if: ${{ startsWith(matrix.python-version, '3.13.0-alpha - 3.13.0') }}
run: |
pip install -U wheel setuptools
# cffi will probably have no public release until a beta or even RC
# version of Python 3.13, see https://github.com/python-cffi/cffi/issues/23
pip install -U 'cffi @ https://github.com/python-cffi/cffi/archive/refs/heads/main.zip ; platform_python_implementation == "CPython"'
# coverage has a wheel on PyPI for a future python version which is
# not ABI compatible with the current one, so build it from sdist:
pip install -U --no-binary :all: coverage
Expand Down Expand Up @@ -351,9 +365,9 @@ jobs:

steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
###
Expand All @@ -376,7 +390,7 @@ jobs:
${{ runner.os }}-pip-
- name: Download ExtensionClass wheel
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: ExtensionClass-${{ runner.os }}-${{ matrix.python-version }}.whl
path: dist/
Expand Down Expand Up @@ -404,9 +418,9 @@ jobs:

steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
###
Expand Down Expand Up @@ -456,7 +470,7 @@ jobs:
bash .manylinux.sh
- name: Upload ExtensionClass wheels
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
path: wheelhouse/*whl
name: manylinux_${{ matrix.image }}_wheels.zip
Expand Down
2 changes: 1 addition & 1 deletion .meta.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# https://github.com/zopefoundation/meta/tree/master/config/c-code
[meta]
template = "c-code"
commit-id = "cb0568c7"
commit-id = "43bd5905"

[python]
with-appveyor = true
Expand Down
2 changes: 1 addition & 1 deletion CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
5.2 (unreleased)
================

- Add preliminary support for Python 3.13a2.
- Add preliminary support for Python 3.13a3.


5.1 (2023-10-05)
Expand Down
1 change: 1 addition & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ deps =
check-manifest
check-python-versions >= 0.20.0
wheel
commands_pre =
commands =
check-manifest
check-python-versions
Expand Down

0 comments on commit 7616aa4

Please sign in to comment.