Skip to content

Relax idna pin from ==3.7 to >=3.7 - #504

Merged
iurisilvio merged 2 commits into
mainfrom
fix/unpin-idna
Jul 3, 2026
Merged

Relax idna pin from ==3.7 to >=3.7#504
iurisilvio merged 2 commits into
mainfrom
fix/unpin-idna

Conversation

@iurisilvio

Copy link
Copy Markdown
Contributor

What

Relax the idna requirement from an exact pin ==3.7 to a floor >=3.7.

Why

idna is a transitive dependency (pulled in via requests) and is not imported anywhere in the SDK. The line exists solely to enforce the security floor from CVE-2024-3651 (fixed in idna 3.7, originally added by Dependabot).

Because setup.py reads requirements.txt line-by-line into install_requires, the exact ==3.7 propagates to every project that installs roboflow. Any downstream environment that also depends on a package requiring a newer idna (e.g. the google-cloud-* stack) hits resolver backtracking or an outright conflict, since idna is nailed to exactly 3.7.

Relaxing to >=3.7:

  • Keeps the CVE-2024-3651 security floor.
  • Unblocks dependency resolution — requests caps idna<4, so this resolves to the latest 3.x.
  • Matches requirements-slim.txt, which already leaves idna unpinned.

Notes

idna is not referenced in application code, so there is no runtime behavior change — this only affects dependency resolution.

🤖 Generated with Claude Code

idna is a transitive dependency (via requests) and is not imported
anywhere in the SDK; the exact pin existed only to enforce the
CVE-2024-3651 security floor (fixed in idna 3.7, added by Dependabot).

The exact `==3.7` propagates to every package that installs `roboflow`
and forces the resolver to backtrack when a sibling dependency (e.g.
google-cloud) needs a newer idna — this is the root cause worked around
in roboflow-queues#121. Relaxing to `>=3.7` keeps the security floor
while letting the resolver pick a compatible newer idna (requests caps
it at <4). Matches requirements-slim.txt, which already leaves idna
unpinned.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@iurisilvio
iurisilvio merged commit 2a1f70f into main Jul 3, 2026
15 checks passed
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