Update uvicorn to 0.52.0 - #613
Conversation
📝 WalkthroughWalkthroughThe pinned ChangesUvicorn dependency update
Estimated code review effort: 1 (Trivial) | ~2 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/requirements.txt`:
- Line 3: Update the Python-version configuration associated with
uvicorn==0.52.0, including the .travis.yml runtime matrix, to require a
compatible Python release and remove or update Python 3.6 and 3.9 entries.
Ensure the declared support floor matches Uvicorn’s requirement and remains
consistent across dependency and CI configuration.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
| fastapi==0.6.4 | ||
| gitpython | ||
| uvicorn==0.4.6 | ||
| uvicorn==0.52.0 |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Declared Python versions:"
fd -HI '^(pyproject\.toml|setup\.py|setup\.cfg|tox\.ini|\.python-version|Dockerfile.*|.*\.yml|.*\.yaml)$' . \
-x rg -n 'requires-python|python_requires|python-version|FROM python|python:' {}
echo "Uvicorn usage:"
rg -n --glob '!src/requirements.txt' '\buvicorn\b|python[0-9.]*' .Repository: salimfadhley/dockerized_python_playground
Length of output: 227
🏁 Script executed:
#!/bin/bash
set -u
echo "Top-level files:"
find . -maxdepth 3 -type f \( -name 'pyproject.toml' -o -name 'setup.py' -o -name 'setup.cfg' -o -name 'tox.ini' -o -name '.python-version' -o -iname 'dockerfile*' -o -iname '*.yml' -o -iname '*.yaml' -o -name 'requirements*.txt' -o -name 'README*' \) -print | sort
echo
echo "Python mentions in tracked/config files:"
git ls-files | rg -i '(^|/)(pyproject\.toml|setup\.py|setup\.cfg|tox\.ini|\.python-version|Dockerfile|docker-compose.*|.*\.ya?ml|requirements.*\.txt|README.*|.*\.md)$' | while read -r f; do
if rg -n 'requires-python|python_requires|python-version|FROM python|python:|python[0-9.]+' "$f" >/tmp/matches.$$ 2>/dev/null; then
echo "--- $f"
cat /tmp/matches.$$
fi
done
rm -f /tmp/matches.$$ || true
echo
echo "src/requirements.txt:"
if [ -f src/requirements.txt ]; then cat -n src/requirements.txt; fiRepository: salimfadhley/dockerized_python_playground
Length of output: 499
🏁 Script executed:
#!/bin/bash
set -u
echo ".travis.yml:"
cat -n .travis.yml
echo
echo "docker-compose.yaml:"
cat -n docker-compose.yaml
echo
echo "Dockerfile:"
cat -n Dockerfile
echo
echo "src/setup.py:"
cat -n src/setup.py
echo
echo "src/requirements_dev.txt:"
if [ -f src/requirements_dev.txt ]; then cat -n src/requirements_dev.txt; fiRepository: salimfadhley/dockerized_python_playground
Length of output: 2591
🏁 Script executed:
#!/bin/bash
set -u
echo "Uvicorn 0.52.0 metadata:"
python3 - <<'PY'
import json, urllib.request, sys
url="https://pypi.org/pypi/uvicorn/0.52.0/json"
try:
with urllib.request.urlopen(url, timeout=20) as r:
data=json.load(r)
except Exception as e:
print(f"ERROR: {e}", file=sys.stderr)
raise SystemExit(1)
info=data.get("info", {})
print("requires_python:", info.get("requires_python"))
print("classifiers:", [c for c in info.get("classifiers", []) if c.startswith("Programming Language :: Python")])
PY
echo
echo "Other requirements mentioning uvicorn/fastapi/hypercorn/daphne:"
rg -n '(?i)\b(uvicorn|fastapi|hypercorn|daphne|python)[0-9.\s=<>~=|^~]*' Dockerfile .travis.yml src/requirements*.txt src/setup.pyRepository: salimfadhley/dockerized_python_playground
Length of output: 936
🌐 Web query:
PyPI uvicorn 0.52.0 requires_python classifiers
💡 Result:
As of July 29, 2026, Uvicorn version 0.52.0 has not been released [1][2]. The latest available version on PyPI is 0.51.0, released on July 8, 2026 [3][4]. For Uvicorn version 0.51.0, the requires-python metadata is set to >=3.10 [3]. While previous versions of Uvicorn historically included a broad set of classifiers to support older Python versions [5], recent releases have updated their constraints to align with modern Python support requirements [3]. It is important to note that for Python packaging, requires-python is the metadata used by installers (like pip) to enforce installation compatibility [6]. Classifiers, while often used to display compatibility on PyPI, are primarily for searching and browsing and do not programmatically restrict installation [6].
Citations:
- 1: https://uvicorn.dev/release-notes/
- 2: https://github.com/Kludex/uvicorn/releases
- 3: https://pypi.org/project/uvicorn/0.51.0/
- 4: https://newreleases.io/project/pypi/uvicorn/release/0.51.0
- 5: https://github.com/encode/uvicorn/blob/99acac598682b45be98094216f7db223c1fdf5f2/setup.py
- 6: PyPI: Python version from classifiers vs. requires_python badges/shields#5551
🏁 Script executed:
#!/bin/bash
set -u
echo "All requirements/config files:"
for f in Dockerfile .travis.yml docker-compose.yaml src/requirements.txt src/requirements_dev.txt src/setup.py; do
if [ -f "$f" ]; then
echo "--- $f"
cat -n "$f"
fi
done
echo
echo "Python constraints and versions across tracked files:"
git ls-files | xargs -r rg -n 'requires-python|python_requires|Programming Language :: Python :: (3\.|[^0-9])|python-version|language: python|python:[[:space:]]|\bpython[[:space:]]*[:=<>~^|][[:space:]]*[0-9]|FROM python|python:' || trueRepository: salimfadhley/dockerized_python_playground
Length of output: 2860
Align the Python floor with Uvicorn’s requirement.
uvicorn==0.52.0 is incompatible with Python 3.9 and older, while .travis.yml still declares Python 3.6. Add a python_requires/Travis-compatible release constraint and update or remove downstream 3.6/3.9 support before merging.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/requirements.txt` at line 3, Update the Python-version configuration
associated with uvicorn==0.52.0, including the .travis.yml runtime matrix, to
require a compatible Python release and remove or update Python 3.6 and 3.9
entries. Ensure the declared support floor matches Uvicorn’s requirement and
remains consistent across dependency and CI configuration.
|
Closing this in favor of #616 |
This PR updates uvicorn from 0.4.6 to 0.52.0.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
Summary by CodeRabbit