Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Python 3.13 beta to CI #6166

Draft
wants to merge 10 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 8 additions & 2 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
fail-fast: false
matrix:
include:
- python-version: "3.12"
- python-version: "3.13.0-beta.1"
env:
TOXENV: pylint
- python-version: 3.8
Expand All @@ -24,7 +24,7 @@ jobs:
- python-version: "3.11" # Keep in sync with .readthedocs.yml
env:
TOXENV: docs
- python-version: "3.12"
- python-version: "3.13.0-beta.1"
env:
TOXENV: twinecheck

Expand All @@ -36,6 +36,12 @@ jobs:
with:
python-version: ${{ matrix.python-version }}

- name: Install system libraries
if: contains(matrix.python-version, 'beta')
run: |
sudo apt-get update
sudo apt-get install libxml2-dev libxslt-dev

- name: Run check
env: ${{ matrix.env }}
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: 3.12
python-version: "3.13.0-beta.1"
- run: |
pip install --upgrade build twine
python -m build
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,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.0-beta.1"]

steps:
- uses: actions/checkout@v4
Expand Down
11 changes: 7 additions & 4 deletions .github/workflows/tests-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ jobs:
- python-version: "3.12"
env:
TOXENV: py
- python-version: "3.12"
- python-version: "3.13.0-beta.1"
env:
TOXENV: py
- python-version: "3.13.0-beta.1"
env:
TOXENV: asyncio
- python-version: pypy3.9
Expand All @@ -51,10 +54,10 @@ jobs:
env:
TOXENV: botocore-pinned

- python-version: "3.12"
- python-version: "3.13.0-beta.1"
env:
TOXENV: extra-deps
- python-version: "3.12"
- python-version: "3.13.0-beta.1"
env:
TOXENV: botocore

Expand All @@ -67,7 +70,7 @@ jobs:
python-version: ${{ matrix.python-version }}

- name: Install system libraries
if: contains(matrix.python-version, 'pypy') || contains(matrix.env.TOXENV, 'pinned')
if: contains(matrix.python-version, 'pypy') || contains(matrix.python-version, 'beta') || contains(matrix.env.TOXENV, 'pinned')
run: |
sudo apt-get update
sudo apt-get install libxml2-dev libxslt-dev
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/tests-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@ jobs:
- python-version: "3.12"
env:
TOXENV: py
- python-version: "3.12"
- python-version: "3.13.0-beta.1"
env:
TOXENV: py
- python-version: "3.13.0-beta.1"
env:
TOXENV: asyncio

Expand Down
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Internet :: WWW/HTTP",
Expand Down
16 changes: 9 additions & 7 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,15 @@ deps =
sybil >= 1.3.0 # https://github.com/cjw296/sybil/issues/20#issuecomment-605433422
testfixtures
pywin32; sys_platform == "win32"
cffi >= 1.17.0rc1; python_version >= '3.13'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To remove after a full release is made (planned in July).


[testenv]
deps =
{[test-requirements]deps}

# mitmproxy does not support PyPy
mitmproxy; implementation_name != 'pypy'
# mitmproxy requires zstandard which is not yet available on 3.13
mitmproxy; implementation_name != 'pypy' and python_version < '3.13'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To remove after a full cffi release is made (planned in July) and zstandard wheels are built with it.

# https://github.com/pallets/werkzeug/pull/2768 breaks flask, required by
# mitmproxy.
werkzeug < 3; python_version < '3.9' and implementation_name != 'pypy'
Expand Down Expand Up @@ -86,8 +88,8 @@ commands =
[testenv:twinecheck]
basepython = python3
deps =
twine==4.0.2
build==1.0.3
twine==5.1.0
build==1.2.1
commands =
python -m build --sdist
twine check dist/*
Expand Down Expand Up @@ -149,13 +151,13 @@ deps =
# restrictions in their deps, so we need to pin old markupsafe here too.
markupsafe < 2.1.0
robotexclusionrulesparser
Pillow
Pillow; python_version < '3.13'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To remove after 10.4.0 is released (planned in July).

Twisted[http2]
uvloop; platform_system != "Windows"
bpython # optional for shell wrapper tests
uvloop; platform_system != "Windows" and python_version < '3.13'
bpython; python_version < '3.13' # optional for shell wrapper tests
brotli; implementation_name != 'pypy' # optional for HTTP compress downloader middleware tests
brotlicffi; implementation_name == 'pypy' # optional for HTTP compress downloader middleware tests
zstandard; implementation_name != 'pypy' # optional for HTTP compress downloader middleware tests
zstandard; implementation_name != 'pypy' and python_version < '3.13' # optional for HTTP compress downloader middleware tests
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To remove after a full cffi release is made (planned in July) and zstandard wheels are built with it.

ipython

[testenv:extra-deps-pinned]
Expand Down