Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,9 @@ jobs:
pyver: "3.14"
experimental: true
no-extensions: 'Y'
- os: ubuntu
pyver: "3.14t"
experimental: true
fail-fast: true
runs-on: ${{ matrix.os }}-latest
continue-on-error: ${{ matrix.experimental }}
Expand Down Expand Up @@ -186,8 +189,13 @@ jobs:
run: |
python -m pip install -U pip wheel setuptools build twine
- name: Install dependencies
env:
DEPENDENCY_GROUP: test${{ endsWith(matrix.pyver, 't') && '-ft' || '' }}
run: |
python -m pip install -r requirements/test.in -c requirements/test.txt
python -Im pip install -r requirements/${{ env.DEPENDENCY_GROUP }}.in -c requirements/${{ env.DEPENDENCY_GROUP }}.txt
- name: Set PYTHON_GIL=0 for free-threading builds
if: ${{ endsWith(matrix.pyver, 't') }}
run: echo "PYTHON_GIL=0" >> $GITHUB_ENV
- name: Restore llhttp generated files
if: ${{ matrix.no-extensions == '' }}
uses: actions/download-artifact@v5
Expand Down
6 changes: 2 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ repos:
entry: ./tools/check_changes.py
pass_filenames: false
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: 'v5.0.0'
rev: 'v6.0.0'
hooks:
- id: check-merge-conflict
- repo: https://github.com/asottile/yesqa
Expand All @@ -69,7 +69,7 @@ repos:
- id: black
language_version: python3 # Should be a command that runs python
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: 'v5.0.0'
rev: 'v6.0.0'
hooks:
- id: end-of-file-fixer
exclude: >-
Expand All @@ -94,8 +94,6 @@ repos:
- id: check-added-large-files
- id: check-symlinks
- id: fix-byte-order-marker
- id: fix-encoding-pragma
args: ['--remove']
- id: detect-aws-credentials
args: ['--allow-missing-credentials']
- id: detect-private-key
Expand Down
1 change: 1 addition & 0 deletions CHANGES/11466.contrib.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added free-threading CI job for CPython 3.14 -- by :user:`kumaraditya303`.
3 changes: 3 additions & 0 deletions requirements/base-ft.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-r runtime-deps.in

gunicorn
48 changes: 48 additions & 0 deletions requirements/base-ft.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# by the following command:
#
# pip-compile --allow-unsafe --output-file=requirements/base-ft.txt --strip-extras requirements/base-ft.in
#
aiodns==3.5.0
# via -r requirements/runtime-deps.in
aiohappyeyeballs==2.6.1
# via -r requirements/runtime-deps.in
aiosignal==1.4.0
# via -r requirements/runtime-deps.in
async-timeout==5.0.1 ; python_version < "3.11"
# via -r requirements/runtime-deps.in
brotli==1.1.0 ; platform_python_implementation == "CPython"
# via -r requirements/runtime-deps.in
cffi==2.0.0
# via pycares
frozenlist==1.7.0
# via
# -r requirements/runtime-deps.in
# aiosignal
gunicorn==23.0.0
# via -r requirements/base-ft.in
idna==3.10
# via yarl
multidict==6.6.4
# via
# -r requirements/runtime-deps.in
# yarl
packaging==25.0
# via gunicorn
propcache==0.3.2
# via
# -r requirements/runtime-deps.in
# yarl
pycares==4.11.0
# via aiodns
pycparser==2.23
# via cffi
typing-extensions==4.15.0
# via
# aiosignal
# multidict
yarl==1.20.1
# via -r requirements/runtime-deps.in
zstandard==0.25.0 ; platform_python_implementation == "CPython" and python_version < "3.14"
# via -r requirements/runtime-deps.in
5 changes: 3 additions & 2 deletions requirements/constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ coverage==7.10.6
# via
# -r requirements/test.in
# pytest-cov
cryptography==45.0.7
cryptography==46.0.1
# via
# pyjwt
# trustme
Expand Down Expand Up @@ -190,7 +190,7 @@ pytest-codspeed==4.0.0
# -r requirements/test.in
pytest-cov==7.0.0
# via -r requirements/test.in
pytest-mock==3.15.0
pytest-mock==3.15.1
# via
# -r requirements/lint.in
# -r requirements/test.in
Expand Down Expand Up @@ -266,6 +266,7 @@ trustme==1.2.1 ; platform_machine != "i686"
typing-extensions==4.15.0
# via
# aiosignal
# cryptography
# exceptiongroup
# multidict
# mypy
Expand Down
5 changes: 3 additions & 2 deletions requirements/dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ coverage==7.10.6
# via
# -r requirements/test.in
# pytest-cov
cryptography==45.0.7
cryptography==46.0.1
# via
# pyjwt
# trustme
Expand Down Expand Up @@ -185,7 +185,7 @@ pytest-codspeed==4.0.0
# -r requirements/test.in
pytest-cov==7.0.0
# via -r requirements/test.in
pytest-mock==3.15.0
pytest-mock==3.15.1
# via
# -r requirements/lint.in
# -r requirements/test.in
Expand Down Expand Up @@ -257,6 +257,7 @@ trustme==1.2.1 ; platform_machine != "i686"
typing-extensions==4.15.0
# via
# aiosignal
# cryptography
# exceptiongroup
# multidict
# mypy
Expand Down
5 changes: 3 additions & 2 deletions requirements/lint.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ cfgv==3.4.0
# via pre-commit
click==8.1.8
# via slotscheck
cryptography==45.0.7
cryptography==46.0.1
# via trustme
distlib==0.4.0
# via virtualenv
Expand Down Expand Up @@ -82,7 +82,7 @@ pytest==8.4.2
# pytest-mock
pytest-codspeed==4.0.0
# via -r requirements/lint.in
pytest-mock==3.15.0
pytest-mock==3.15.1
# via -r requirements/lint.in
python-dateutil==2.9.0.post0
# via freezegun
Expand All @@ -105,6 +105,7 @@ trustme==1.2.1
# via -r requirements/lint.in
typing-extensions==4.15.0
# via
# cryptography
# exceptiongroup
# mypy
# pydantic
Expand Down
17 changes: 17 additions & 0 deletions requirements/test-common.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
blockbuster
coverage
freezegun
isal; python_version < "3.14" # no wheel for 3.14
mypy; implementation_name == "cpython"
pkgconfig
proxy.py >= 2.4.4rc5
pytest
pytest-cov
pytest-mock
pytest-xdist
pytest_codspeed
python-on-whales
setuptools-git
trustme; platform_machine != "i686" # no 32-bit wheels
wait-for-it
zlib_ng
113 changes: 113 additions & 0 deletions requirements/test-common.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# by the following command:
#
# pip-compile --allow-unsafe --output-file=requirements/test-common.txt --strip-extras requirements/test-common.in
#
annotated-types==0.7.0
# via pydantic
blockbuster==1.5.25
# via -r requirements/test-common.in
cffi==2.0.0
# via
# cryptography
# pytest-codspeed
click==8.2.1
# via wait-for-it
coverage==7.10.6
# via
# -r requirements/test-common.in
# pytest-cov
cryptography==46.0.1
# via trustme
exceptiongroup==1.3.0
# via pytest
execnet==2.1.1
# via pytest-xdist
forbiddenfruit==0.1.4
# via blockbuster
freezegun==1.5.5
# via -r requirements/test-common.in
idna==3.10
# via trustme
iniconfig==2.1.0
# via pytest
isal==1.8.0 ; python_version < "3.14"
# via -r requirements/test-common.in
markdown-it-py==4.0.0
# via rich
mdurl==0.1.2
# via markdown-it-py
mypy==1.18.1 ; implementation_name == "cpython"
# via -r requirements/test-common.in
mypy-extensions==1.1.0
# via mypy
packaging==25.0
# via pytest
pathspec==0.12.1
# via mypy
pkgconfig==1.5.5
# via -r requirements/test-common.in
pluggy==1.6.0
# via
# pytest
# pytest-cov
proxy-py==2.4.10
# via -r requirements/test-common.in
pycparser==2.23
# via cffi
pydantic==2.12.0a1
# via python-on-whales
pydantic-core==2.37.2
# via pydantic
pygments==2.19.2
# via
# pytest
# rich
pytest==8.4.2
# via
# -r requirements/test-common.in
# pytest-codspeed
# pytest-cov
# pytest-mock
# pytest-xdist
pytest-codspeed==4.0.0
# via -r requirements/test-common.in
pytest-cov==7.0.0
# via -r requirements/test-common.in
pytest-mock==3.15.1
# via -r requirements/test-common.in
pytest-xdist==3.8.0
# via -r requirements/test-common.in
python-dateutil==2.9.0.post0
# via freezegun
python-on-whales==0.78.0
# via -r requirements/test-common.in
rich==14.1.0
# via pytest-codspeed
setuptools-git==1.2
# via -r requirements/test-common.in
six==1.17.0
# via python-dateutil
tomli==2.2.1
# via
# coverage
# mypy
# pytest
trustme==1.2.1 ; platform_machine != "i686"
# via -r requirements/test-common.in
typing-extensions==4.15.0
# via
# cryptography
# exceptiongroup
# mypy
# pydantic
# pydantic-core
# python-on-whales
# typing-inspection
typing-inspection==0.4.1
# via pydantic
wait-for-it==2.3.0
# via -r requirements/test-common.in
zlib-ng==1.0.0
# via -r requirements/test-common.in
2 changes: 2 additions & 0 deletions requirements/test-ft.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-r base-ft.in
-r test-common.in
Loading
Loading