v3.0.0: Modernize for latest Starlette, drop EOL Pythons

- Bump version to 3.0.0
- Replace deprecated starlette.middleware.wsgi with a2wsgi
- Pin starlette[full]>=0.40, add a2wsgi dependency
- Bump minimum Python to 3.9, drop 3.7/3.8 support
- Remove whitenoise conditional (Python <3.8 no longer supported)
- Clean up CI matrix: drop old Python versions and OS exclusions
- Fix deprecated httpx TestClient usage in tests (data= -> content=, per-request cookies)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-22 05:23:18 -04:00
parent 944d47da45
commit e7776eb9e8
6 changed files with 15 additions and 55 deletions
+1 -38
View File
@@ -20,15 +20,11 @@ jobs:
fail-fast: false
matrix:
os: [
"ubuntu-20.04",
"macos-13",
"ubuntu-latest",
"macos-latest",
"windows-latest",
]
python-version: [
"3.6",
"3.7",
"3.8",
"3.9",
"3.10",
"3.11",
@@ -36,33 +32,6 @@ jobs:
"3.13",
"pypy3.10",
]
exclude:
# Exclude test matrix slots that are no longer supported by GHA runners.
- os: 'ubuntu-20.04'
python-version: '3.6'
- os: 'macos-latest'
python-version: '3.6'
- os: 'macos-latest'
python-version: '3.7'
- os: 'macos-latest'
python-version: '3.8'
- os: 'macos-latest'
python-version: '3.9'
- os: 'macos-latest'
python-version: '3.10'
# Exclude Python 3.7 on Windows, because GHA fails on it.
#
# SyntaxError: Non-UTF-8 code starting with '\x83' in file
# C:\hostedtoolcache\windows\Python\3.7.9\x64\Scripts\poe.exe
# on line 2, but no encoding declared;
# see http://python.org/dev/peps/pep-0263/ for details
#
# https://github.com/kennethreitz/responder/actions/runs/11526258626/job/32090071392?pr=546#step:6:73
- os: 'windows-latest'
python-version: '3.7'
env:
UV_SYSTEM_PYTHON: true
@@ -77,9 +46,6 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
architecture: x64
cache: 'pip'
cache-dependency-path: |
pyproject.toml
- name: Set up uv
uses: astral-sh/setup-uv@v5
@@ -115,9 +81,6 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
architecture: x64
cache: 'pip'
cache-dependency-path: |
pyproject.toml
- name: Set up uv
uses: astral-sh/setup-uv@v5