Skip to content

Update Python SDK dependencies and require Python 3.10 - #14

Merged
MudassarTariq merged 3 commits into
masterfrom
fix/python-security-dependencies
Oct 29, 2026
Merged

MudassarTariq merged 3 commits into
masterfrom
fix/python-security-dependencies

Conversation

@MudassarTariq

@MudassarTariq MudassarTariq commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Python 3.8 and 3.9 installs select older urllib3 and AnyIO releases with published advisories. The test requirement also excludes patched pytest, and the build requirements permit affected setuptools and wheel releases.

Prepare 3.0.0 with Python 3.10 as the minimum. Raise the HTTP and certificate dependency minimums to Requests 2.33.0, HTTPX 0.28.1, urllib3 2.8.0, AnyIO 4.14.2 and certifi 2026.10.23; use pytest 9.0.3+, setuptools 84.1.0+ and wheel 0.48.0+. Add dependency auditing, minimum-version checks and CI across Python 3.10–3.15. The scanner runs separately on Python 3.11 with patched filelock and setuptools, and audits both its own environment and the SDK environment for each Python version.

All runtime source and typing files are unchanged. The README change is limited to the Python requirement. New local HTTP tests run the real Requests and HTTPX transports against a Postman simulation, covering single/bulk and typed/raw responses, query encoding, headers, authentication, metadata, errors, malformed responses, timeouts and streaming limits.

Validation:

  • Current and minimum dependencies: 195 tests passed, 36 credential-gated live tests skipped; coverage 90.10%, above the existing 90% requirement. The baseline had 169 passing tests and 88.91% coverage.
  • Installed wheel: 194 tests passed, 36 live tests skipped; one source-tree-only version fallback check excluded. Wheel metadata rejects Python 3.9 and declares the updated runtime requirements.
  • Runtime, development and minimum-dependency audits: zero findings. Direct declared minimum versions also have no OSV matches.
  • Ruff, mypy, Pyright, dependency consistency, source/wheel comparison, source/wheel builds and actionlint passed locally.
  • GitHub CI passes all six Python versions, including minimum dependencies on Python 3.10, SDK audits and scanner audits.

Compatibility and release:

  • Python 3.8/3.9 support is removed, so this needs the 3.0.0 release after merge. Nothing has been published or deployed.
  • Consumers on older Python versions must upgrade Python, then refresh dependencies and restart; packaged applications and containers need rebuilding and deployment.
  • urllib3 2.8 separates proxy and destination TLS configuration. Custom HTTPS proxy setups need their own validation; live API and deployed environments were not tested.

@MudassarTariq
MudassarTariq merged commit 2befffb into master Oct 29, 2026
6 checks passed
@MudassarTariq
MudassarTariq deleted the fix/python-security-dependencies branch October 29, 2026 19:21
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.

1 participant