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
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
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
Comment thread
kumaraditya303 marked this conversation as resolved.
Comment thread
kumaraditya303 marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-r base-ft.in
-r test-common.in
150 changes: 150 additions & 0 deletions requirements/test-ft.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# by the following command:
#
# pip-compile --allow-unsafe --output-file=requirements/test-ft.txt --strip-extras requirements/test-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
annotated-types==0.7.0
# via pydantic
async-timeout==5.0.1 ; python_version < "3.11"
# via -r requirements/runtime-deps.in
blockbuster==1.5.25
# via -r requirements/test-common.in
brotli==1.1.0 ; platform_python_implementation == "CPython"
# via -r requirements/runtime-deps.in
cffi==2.0.0
# via
# cryptography
# pycares
# 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
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
# trustme
# yarl
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
multidict==6.6.4
# via
# -r requirements/runtime-deps.in
# yarl
mypy==1.18.1 ; implementation_name == "cpython"
# via -r requirements/test-common.in
mypy-extensions==1.1.0
# via mypy
packaging==25.0
# via
# gunicorn
# 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
propcache==0.3.2
# via
# -r requirements/runtime-deps.in
# yarl
proxy-py==2.4.10
# via -r requirements/test-common.in
pycares==4.11.0
# via aiodns
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
# aiosignal
# cryptography
# exceptiongroup
# multidict
# 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
yarl==1.20.1
# via -r requirements/runtime-deps.in
zlib-ng==1.0.0
# via -r requirements/test-common.in
zstandard==0.25.0 ; platform_python_implementation == "CPython" and python_version < "3.14"
# via -r requirements/runtime-deps.in
19 changes: 1 addition & 18 deletions requirements/test.in
Original file line number Diff line number Diff line change
@@ -1,19 +1,2 @@
-r base.in

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
-r test-common.in
4 changes: 2 additions & 2 deletions requirements/test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,9 @@ pycares==4.11.0
# via aiodns
pycparser==2.23
# via cffi
pydantic==2.11.9
pydantic==2.12.0a1
# via python-on-whales
pydantic-core==2.33.2
pydantic-core==2.37.2
# via pydantic
pygments==2.19.2
# via
Expand Down
Loading