fix(pip): Set some dep lower-bound to fix ResolutionTooDeep#613
Open
matthewgrossman wants to merge 5 commits into
Open
fix(pip): Set some dep lower-bound to fix ResolutionTooDeep#613matthewgrossman wants to merge 5 commits into
ResolutionTooDeep#613matthewgrossman wants to merge 5 commits into
Conversation
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Contributor
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughAdded minimum version constraints for ChangesDependency version pins
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Contributor
|
mckornfield
approved these changes
Jul 8, 2026
mckornfield
left a comment
Contributor
There was a problem hiding this comment.
lol uv.lock 485 changes on this one pin
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
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.
Signed-off-by: Matthew Grossman mgrossman@nvidia.com
What
Add lower/upper version bounds on two transitive dependencies to stop pip's
backtracking resolver from failing with
ResolutionTooDeep: 200000onpip install "nemo-platform[all]".In
plugins/nemo-agents/pyproject.toml:These flow through
make vendorinto the generatednemo-agents-pluginextrain
packages/nemo_platform/pyproject.toml, which[all]pulls in via[services]→[plugins].Why
nemo-platformdoesn't depend onlitellmdirectly — it comes in transitivelyvia
nvidia-nat-langchain→langchain-litellm→litellm, andnvidia-nat-langchainalso requires
pyopenssldirectly.litellmhas ~1,200 released versions onPyPI and enters the graph unbounded, so pip's
resolvelibbacktracker exploresa huge candidate space and blows past its 200,000-round
ResolutionTooDeepcap.The two bounds restate the effective floors
nvidia-nat-langchainalreadyimposes (
langchain-litellm>=0.6.5requireslitellm>=1.83.14; nvidia-nat-langchainrequires
pyopenssl>=26.0.0,<27.0.0). Surfacing them at the top level collapsespip's candidate set and lets the resolver converge. This mirrors the existing
ASTD-164pins in the same file, which do the same thing for theaioboto3/langchain-awschain.Verification
Reproduced the reporter's exact environment (pip 24.0, Python 3.12.12,
pip install "<wheel>[all]"in a clean venv):ResolutionTooDeep: 200000CI wheel build + test jobs (which install
[services]via uv across py3.11–3.14)continue to pass.
Notes / follow-ups (out of scope)
litellm/langchain-litellmrelease could shift the backtracking again, same as the existing ASTD-164 pins.
This is mitigation, not a permanent cure.
pip install "nemo-platform[all]"remains broken on Python 3.13/3.14independent of this change, because
litellmandnemo-safe-synthesizerdeclare
Requires-Python <3.14. pip strictly enforces that cap; uv does not,which is why CI (uv) is green there. Worth a separate issue to either bump the
upstream deps or narrow
nemo-platform's advertisedrequires-python.Summary by CodeRabbit