Drop caret upper bounds on runtime dependencies - #820
Open
balloob wants to merge 1 commit into
Open
Conversation
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThis PR relaxes runtime dependency version constraints in pyproject.toml by removing caret-based upper bounds and refreshing poetry.lock’s content hash without changing resolved versions. File-Level Changes
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- Since you're intentionally relying on downstream tests to catch future major-version breaks, consider adding a CI job that periodically runs the test suite against the latest releases of these now-unbounded runtime dependencies to surface incompatibilities early.
- You might want to align the versioning strategy for
aiobotocorewith the other runtime dependencies (either keep its<4.0.0upper bound on purpose and comment why, or relax it similarly) so consumers have a consistent expectation across all dependencies.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- Since you're intentionally relying on downstream tests to catch future major-version breaks, consider adding a CI job that periodically runs the test suite against the latest releases of these now-unbounded runtime dependencies to surface incompatibilities early.
- You might want to align the versioning strategy for `aiobotocore` with the other runtime dependencies (either keep its `<4.0.0` upper bound on purpose and comment why, or relax it similarly) so consumers have a consistent expectation across all dependencies.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Caret (^) constraints expand to an implicit "< next major" upper bound. For a library that is too limiting for consumers that must resolve a single version set across many packages: Home Assistant, for example, cannot pair nice-go with another integration that needs a newer major of a shared dependency. We prefer to rely on consumers' test suites to catch real incompatibilities with new versions rather than pre-emptively capping. Concretely this unblocks Home Assistant from adopting tenacity 9.x (required by another dependency). Verified that the latest tenacity (9.1.4) still provides every symbol nice-go imports -- retry, retry_base, retry_if_exception_type, wait_random_exponential, before_sleep_log, RetryCallState -- so lifting the cap is safe. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016huRs96kGdQbNQopXseC4H
balloob
force-pushed
the
deps/loosen-version-caps
branch
from
July 2, 2026 19:21
b8799e2 to
70960d5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Drop the caret (
^) upper bounds on the runtime dependencies (aiohttp,yarl,pycognito,tenacity), replacing them with lower-bound-only>=constraints.A caret constraint expands to an implicit
< next-majorupper bound. For a library that is too limiting for consumers that must resolve a single version set across many packages. Home Assistant, for example, can't pairnice-gowith another integration that needs a newer major of a shared dependency — concretely, it currently can't adopttenacity9.x (required by another dependency) becausenice-gocaps it at<9. The preference is to rely on consumers' test suites to catch real incompatibilities with new versions rather than pre-emptively capping.I verified that the latest
tenacity(9.1.4) still provides every symbolnice-goimports —retry,retry_base,retry_if_exception_type,wait_random_exponential,before_sleep_log,RetryCallState— so lifting that cap is safe.poetry.lockwas refreshed (content-hash only; no dependency versions changed).Checklist
CHANGELOG.mdOR changes are insignificant🤖 Generated with Claude Code
https://claude.ai/code/session_016huRs96kGdQbNQopXseC4H
Summary by Sourcery
Relax runtime dependency version constraints to remove implicit upper bounds while keeping existing minimum supported versions.
Enhancements:
Build: