⚠️ SECURITY: Patch 7 open Dependabot advisories (urllib3, requests, filelock, python-dotenv) - #78
Conversation
Drops support for EOL Python 3.9 to unblock urllib3 2.7+, requests 2.34+, filelock 3.20+ and python-dotenv 1.2.2 — all of which fix open Dependabot advisories.
FernandoCelmer
left a comment
There was a problem hiding this comment.
🔍 Code Review
Code issues found: 1
| # | Severity | Comment |
|---|---|---|
| 1 | [Suggestion] | Breaking change deserves a major version bump |
The dependency refresh and Python-3.9 drop are correct — 3.9 has been EOL since 2025-10-31 and was pinning the vulnerable transitive wheels. Lockfile regeneration looks clean. Test matrix and tox envlist are consistent.
[Suggestion]
Problem — Dropping support for Python 3.9 is a backward-incompatible change for downstream consumers. Per SemVer §8, a backward-incompatible public API change (and the supported-interpreter set is part of the public contract for libraries) requires a major version bump. pyproject.toml still declares version = "1.0.0" in both [project] and [tool.poetry]. Anyone who pinned email-profile ^1.0 and is still on 3.9 will get a broken install after this lands.
Fix — Bump to 2.0.0 in both [project] and [tool.poetry]. Add a CHANGELOG / release-notes entry titled Breaking changes listing:
- Python 3.9 dropped (EOL 2025-10-31)
python-dotenvminimum raised to 1.2.2
As a bonus, the Development Status :: 4 - Beta classifier still appears in both sections — at 2.0.0 it would also make sense to promote to Development Status :: 5 - Production/Stable (or stay at Beta but reflect that in the version, e.g. 2.0.0b1). The current 1.0.0 + Beta combination is already inconsistent.
References — https://semver.org/#spec-item-8 (backward incompatible changes MUST bump MAJOR).
Summary
Closes every open Dependabot advisory by removing the EOL Python 3.9 leg (which was pinning vulnerable wheels) and refreshing the lockfile:
Changes
requires-python = ">=3.10"(Python 3.9 reached EOL on 2025-10-31)python-dotenv ^1.2.2(was^1.0)poetry.lock— all transitively-pinned vulnerable wheels removed3.9from the CI test matrix and the tox envlistBreaking change
Consumers still running Python 3.9 must upgrade. 3.9 has been EOL for over six months; the trade-off is keeping vulnerable transitive deps forever vs. cutting an EOL interpreter.
Test plan
pytest— 208 passedpoetry lockresolves cleanly