Skip to content

Bump requests to 2.33.0 and drop Python 3.9 support#318

Merged
lcbill merged 1 commit into
masterfrom
bt-py-drop39-requests-233
Jul 20, 2026
Merged

Bump requests to 2.33.0 and drop Python 3.9 support#318
lcbill merged 1 commit into
masterfrom
bt-py-drop39-requests-233

Conversation

@lcbill

@lcbill lcbill commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Upgrades requests to 2.33.0, which patches GHSA-gc5v-m9x4-r6x2 (insecure temp-file reuse in extract_zipped_paths(); vulnerable <2.33.0).

requests 2.33.0 requires Python >=3.10, so this raises the SDK's minimum supported Python to 3.10. Python 3.9 reached end-of-life in October 2025, so this is the natural time to drop it. This supersedes Dependabot #316 (which bumped only requests and could not merge because it broke the 3.9 CI job).

Changes

  • requires-python = ">=3.10"; removed the Programming Language :: Python :: 3.9 classifier.
  • requests==2.32.3 -> ==2.33.0 (the security fix).
  • Removed 3.9 from both CI matrices (ci.yml, publish-to-pypi.yml) and the two python:3.9 Cloud Build steps (cloudbuild_pr.yaml).
  • Simplified the dependency shims that existed only for 3.9:
    • orjson is now a single uncapped >=3.10.0 (orjson 3.11+ requires 3.10+).
    • pytest pinned to 9.0.3 for all supported versions (carries the CVE-2025-71176 fix; previously the <3.10 shim held it back to 8.3.4).
    • tomli backport kept for 3.10 (tomllib is stdlib only from 3.11).
  • Updated packaging tests for the new 3.10 floor and the single orjson dependency.

Test plan / validation (local, Python 3.11)

  • Fresh venv pip install ".[dev]" from source resolves requests 2.33.0, orjson 3.11.9, pytest 9.0.3.
  • Full suite pytest tests/unit/ tests/microbenchmarks/ --benchmark-disable: 3744 passed, 5 skipped.
  • test_packaging.py: 20/20 pass (incl. updated test_requires_python_minimum and test_orjson_is_uncapped).
  • python -m build produces sdist + wheel; built metadata shows Requires-Python: >=3.10, classifiers 3.10–3.14, requests==2.33.0, orjson>=3.10.0.

requests 2.33.0 patches GHSA-gc5v-m9x4-r6x2 (insecure temp-file reuse in
extract_zipped_paths) but requires Python >=3.10. Python 3.9 reached
end-of-life in October 2025, so raise the minimum supported version to 3.10
to take the security fix.

- requires-python >=3.10; drop the 3.9 PyPI classifier
- remove 3.9 from the CI matrices (ci.yml, publish-to-pypi.yml) and the two
  3.9 Cloud Build steps
- simplify the 3.9-only dependency shims: orjson uncapped (>=3.10.0), pytest
  pinned to the CVE-fixed 9.0.3 for all supported versions
- update packaging tests for the new 3.10 floor and single orjson dep
@lcbill
lcbill merged commit 1b419de into master Jul 20, 2026
6 checks passed
@lcbill
lcbill deleted the bt-py-drop39-requests-233 branch July 20, 2026 21:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants