Skip to content

Update Python dependencies and raise floor to 3.10 (0.1.8) - #11

Open
stremovsky wants to merge 1 commit into
mainfrom
update-python-deps
Open

Update Python dependencies and raise floor to 3.10 (0.1.8)#11
stremovsky wants to merge 1 commit into
mainfrom
update-python-deps

Conversation

@stremovsky

Copy link
Copy Markdown
Contributor

What

Updates every Python dependency to its current release and raises the supported Python floor from >=3.7 to >=3.10. Ships as 0.1.8.

Why the floor moves

Every current release of our dependencies now requires Python >= 3.10:

Package Was Now
requests >=2.32.4 >=2.34.2
urllib3 (Snyk pin) >=2.5.0 >=2.7.0
pytest >=6.0 >=9.1.1
pytest-cov >=2.0 >=7.1.0
black >=21.0 >=26.5.1
isort >=5.0 >=8.0.1
mypy >=0.910 >=2.3.1
types-requests unpinned >=2.33.0.20260712

Python 3.9 reached EOL in October 2025. Holding the floor below 3.10 would mean pinning the whole toolchain to releases that no longer receive upstream fixes — including requests and urllib3, which requirements.txt pins specifically for CVE remediation.

The old floor was already fiction: the package imports typing.TypedDict (3.8+), and CI only ever tested 3.9 and 3.10, so >=3.7 was never exercised.

Existing users on old interpreters are not broken. pip reads python_requires and will keep offering them 0.1.7.

Also in here

  • CI test matrix: 3.9, 3.103.10, 3.11, 3.12, 3.13; lint and deploy jobs → 3.13
  • black target-version → py310–py313, mypy python_version → 3.10
  • setuptools build floor → 77
  • Version bumped to 0.1.8 in the same commit — the deploy job uploads with --skip-existing, so leaving it at 0.1.7 would make the publish step a silent no-op

Verification

Clean venv, pip install -e ".[dev]", all deps resolving to the versions above:

  • black --check . — 9 files unchanged
  • isort --check-only . — clean
  • mypy databunkerpro/ — no issues
  • pytest tests/38 passed, 114 subtests passed against the live API

Not included

  • semgrep.yml still pins semgrep==1.170.0 (latest 1.174.0). Its comment says bump deliberately and keep in sync with the sibling SDK repos, so it's left for a coordinated bump.
  • Several test_* methods in tests/test_api.py return a value, which unittest deprecates on 3.12+. Pre-existing, warning only today, worth a follow-up.

🤖 Generated with Claude Code

Every current release of our dependencies now requires Python >= 3.10:
requests 2.34.2, urllib3 2.7.0, pytest 9.1.1, black 26.5.1, isort 8.0.1,
mypy 2.3.1 and types-requests all dropped 3.9. Python 3.9 reached EOL in
October 2025, so staying below 3.10 would mean pinning the whole toolchain
to releases that no longer receive upstream fixes -- including the two
packages requirements.txt pins specifically for CVE remediation.

Raise python_requires from >=3.7 to >=3.10 and take the latest of
everything. The 3.7/3.8/3.9 classifiers were already stale: the package has
imported typing.TypedDict (3.8+) for a while, and CI only ever tested 3.9
and 3.10, so the declared floor was never actually exercised. Existing
users on old interpreters stay on 0.1.7 -- pip reads python_requires and
will not offer them this release.

CI now tests 3.10 through 3.13 instead of just 3.9 and 3.10, and the lint
and deploy jobs move to 3.13. Also bump the setuptools build floor to 77.

Bump the version to 0.1.8 in the same commit: the deploy job uploads with
--skip-existing, so leaving it at 0.1.7 would make the publish step a
silent no-op and none of this would reach PyPI.

Verified in a clean venv: black, isort and mypy are clean, and the full
suite passes against the live API (38 tests, 114 subtests).

Co-Authored-By: Claude <noreply@anthropic.com>
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