Repository navigation
[CORE-5247] Major upgrade for urllib3 (chalice) - #3
Open
mattludwigs wants to merge 1 commit into
Open
mattludwigs wants to merge 1 commit into
mattludwigs wants to merge 1 commit into
Conversation
Upgrade urllib3 from 1.26.18 to 2.8.0 in the dev/test lockfiles to resolve the open Dependabot advisories. botocore only allows urllib3 2.x on Python 3.10+, and urllib3 2.7+ itself requires Python 3.10+, so this also drops support for Python 3.8 and 3.9 (both end-of-life), mirroring upstream aws/chalice. - requirements-dev.txt / requirements-test.txt: urllib3 2.8.0, botocore/boto3 1.34.162 (first 1.34.x allowing urllib3 <3), s3transfer 0.10.4 - setup.py: add python_requires='>=3.10', drop 3.8/3.9 classifiers - CI matrix: drop 3.8/3.9 - .python-version: 3.10 - Add .changes/next-release entry Validation (Python 3.10 and 3.12): make check, make pylint and make typecheck pass. tests/unit + tests/functional: 1360 passed, 17 failed; the same 17 fail on main's pins (setuptools 84 sdist handling and a local port conflict), so none are caused by this change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Upgrades urllib3 from
1.26.18to2.8.0in the dev/test lockfiles to resolve the open Dependabot urllib3 advisories. Every botocore release caps urllib3 at<1.27on Python 3.8/3.9, and urllib3 2.7+ itself requires Python 3.10+, so this also drops support for Python 3.8 and 3.9 (both end-of-life). The packaging changes follow upstream aws/chalice's "Drop support for Python 3.9" commit.requirements-dev.txt/requirements-test.txt:urllib3==2.8.0,botocore/boto3==1.34.162(first 1.34.x allowing urllib3<3),s3transfer==0.10.4. No other pins changed.setup.py: addpython_requires='>=3.10', drop 3.8/3.9 classifiers.github/workflows/run-tests.yml: drop 3.8/3.9 from both matrices.python-version:3.10.changes/next-releaseentryAdditional notes & discussion
setup.pydoesn't list it), so this only affects this repo's dev/test environments. Projects that install chalice resolve urllib3 through their own dependencies.Retry(allowed_methods=[...])intests/functional/test_local.py, which already uses the 2.x API and passes a non-empty list. 2.8.0's breaking changes only affect HTTPS-proxy TLS configuration, which chalice doesn't use. Deploy error handling usesbotocore.vendored.requestsexceptions, which don't depend on urllib3.make check,make pylintandmake typecheckpass.tests/unit+tests/functional: 1360 passed, 17 failed. The same 17 fail onmain's current pins with urllib3 1.26.18: 15 sdist tests break with unpinned setuptools 84, and 2 failed from a local port conflict.tests/functional/test_local.py(urllib3Retryviarequests) passes.run-tests.ymlonly triggers onmasterandfeature/**, so CI likely won't run on this pull request againstmain.chalice/config.pystill falls back to thepython3.8Lambda runtime (unreachable now), README/CONTRIBUTING still mention Python 3.7, and the lockfile headers still say "compiled with Python 3.8/3.7" because the pins were edited by hand instead of regenerated.Note
Medium Risk
Breaking packaging change (
python_requires>=3.10) blocks installs on Python 3.8/3.9; urllib3 2.x is limited to dev/test pins but bumps AWS client stack versions used in CI.Overview
Drops support for Python 3.8 and 3.9 and requires Python 3.10+ for installing Chalice (
python_requires, trove classifiers,.python-version, and CI matrices inrun-tests.ymlnow only test 3.10–3.12).Dev/test lockfiles move to
urllib3==2.8.0with matchingboto3/botocore==1.34.162ands3transfer==0.10.4so botocore allows urllib3 2.x (addressing Dependabot advisories tied to urllib3 1.x on older Python). A next-release changelog entry records the enhancement.urllib3 is not listed in
setup.pyruntime deps—this pin change affects this repo’s dev/test environments, not Chalice’s published dependency set.Reviewed by Cursor Bugbot for commit be18bf9. Bugbot is set up for automated code reviews on this repo. Configure here.