Skip to content

fix(agents): pin boto3/langchain-aws to fix pip resolution-too-deep (ASTD-164)#33

Merged
marcusds merged 1 commit into
mainfrom
astd-164-pip-resolution-too-deep/mschwab
May 22, 2026
Merged

fix(agents): pin boto3/langchain-aws to fix pip resolution-too-deep (ASTD-164)#33
marcusds merged 1 commit into
mainfrom
astd-164-pip-resolution-too-deep/mschwab

Conversation

@marcusds
Copy link
Copy Markdown
Contributor

Summary

  • pip install nemo-platform[services] fails during dependency resolution with Dependency resolution exceeded maximum depth. The resolver backtracks across the full boto3 release history while resolving langchain-aws (pulled in via nvidia-nat-langchain in nemo-agents-plugin).
  • The workspace already constrains these via uv override-dependencies in the root pyproject.toml, but those overrides don't reach the published wheel. This PR carries the same bounds in plugins/nemo-agents/pyproject.toml so they propagate to the nemo-platform[services] extra:
    • langchain-aws==1.1.0
    • boto3>=1.40.46,<1.40.62
    • botocore>=1.40.46,<1.40.62
  • The <1.40.62 upper bound matches aiobotocore 2.25.1's cap (required by aioboto3 15.5.0 in files-service). A wider pin lets pip backtrack on aiobotocore + wrapt + yarl simultaneously and time out.

Linear: https://linear.app/nvidia/issue/ASTD-164

Test plan

  • Build wheel with uv build --wheel packages/nemo_platform.
  • Create fresh venv on Python 3.12, pip install --dry-run dist/nemo_platform-*.whl[services] — resolution completes cleanly (334 packages, exit 0). Before the fix this aborted with resolution-too-deep.
  • uv lock --check passes.
  • Verify Linux wheel resolves cleanly (CI).

…ASTD-164)

`pip install nemo-platform[services]` failed during dependency resolution
with `Dependency resolution exceeded maximum depth`. The resolver
backtracked across the full boto3 release history while resolving
`langchain-aws` via `nvidia-nat-langchain` (kitchen-sink) in the
`nemo-agents-plugin` extra.

The workspace already constrains these via uv `override-dependencies`,
but those overrides don't reach the published wheel. Carry the same
bounds in the plugin's declared deps so they propagate to the
`nemo-platform[services]` extra:

  langchain-aws==1.1.0
  boto3>=1.40.46,<1.40.62
  botocore>=1.40.46,<1.40.62

The `<1.40.62` upper bound matches `aiobotocore 2.25.1`'s cap (required
by `aioboto3 15.5.0` in files-service). A wider pin lets pip backtrack
on aiobotocore + wrapt + yarl simultaneously.

Verified with `pip install --dry-run dist/nemo_platform-*.whl[services]`
in a fresh venv: resolution completes cleanly (334 packages).
@marcusds marcusds requested review from a team as code owners May 22, 2026 22:30
Copy link
Copy Markdown
Contributor

@mckornfield mckornfield left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

each day the deptree grows

@github-actions
Copy link
Copy Markdown
Contributor

Suite Lines Covered Line Rate Branch Rate
Unit Tests 18246/24193 75.4% 61.9%
Integration Tests 11663/22975 50.8% 25.9%

@marcusds marcusds added this pull request to the merge queue May 22, 2026
Merged via the queue into main with commit 67f247e May 22, 2026
10 of 11 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