fix(customizer): vendor nemo-gym in the RL image so native-v1 can install - #1856
Conversation
|
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 selected for processing (1)
Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review. 📝 WalkthroughWalkthroughChangesThe RL image pins a newer immutable RL commit. Its Docker build creates and validates a NeMo-Gym wheel, copies it into NeMo-Gym wheel packaging
Sequence Diagram(s)sequenceDiagram
participant DockerBuild as Docker build
participant GymSource as Pinned Gym source
participant BuildScript as build-gym-wheel.sh
participant WheelStore as /opt/gym-wheels
participant ServerInstall as Server installation
DockerBuild->>GymSource: copy pinned source
DockerBuild->>BuildScript: build and validate wheel
BuildScript->>WheelStore: publish validated wheel
ServerInstall->>WheelStore: resolve nemo-gym locally
Suggested reviewers: Merge Risk: ⚪ Minimal · up to The RL image now provides the fork-specific nemo-gym package locally, allowing native-v1 environments to install it without requiring an unavailable index version. The packaged wheel includes build-time validation for versioning and required configuration resources, with no remaining merge-blocking risk identified. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
gabwow
left a comment
There was a problem hiding this comment.
nit: I think some of the agent comments are hurting readability rather than helping (particularly in the nmp-rl-base). If you agree feel free to remove the ones you fine unneeded. However, this is non-blocking and if you find them helpful, leave them in.
|
…tall Signed-off-by: anubhutiv <anubhutiv@nvidia.com>
lint-copyright-headers flagged the new build script, which failed "Lint all" and the aggregate CI status with it. Also trims the comment block flagged in review. One of those lines was wrong as well: it claimed the environment package's own wheelhouse wins because configure_environment_wheelhouse prepends it, but uv resolves find-links by name and version, not by entry order, so the image's wheel wins either way. Signed-off-by: anubhutiv <anubhutiv@nvidia.com>
Signed-off-by: anubhutiv <anubhutiv@nvidia.com>
51c8237 to
aca026d
Compare
Summary
For every Gym server, Gym checks whether it is an editable install in the working directory. If it is not, it installs nemo-gym from a wheel pinned to the parent venv's version: https://github.com/soluwalana/Gym/blob/nmp/customizer/nemo_gym/cli/setup_command.py#L80
A staged environment FileSet is never an editable install, so every native-v1 server takes that path and asks an index for
nemo-gym==0.5.0rc0. That is our fork's version and it is not published anywhere, PyPI has 0.5.0 and 0.5.1, no rc0. So the server venv never builds and the job fails at spin-upThis affects every native-v1 environment.
Related Issue
Changes
UV_FIND_LINKS=/opt/gym-wheels. Gym's install then finds it locally, and everything else still comes from the index as before.0.5.0is not an option, the server venv would run upstream Gym while the actor runs our fork.UV_FIND_LINKSis additive and takes multiple paths, so it does not change how any other dependency resolves. It holds one wheel: nemo-gym.Type of Change
Quality Gates
Verification
Signed-off-by:traileruv run pre-commit run -apasses, or any blocked checks are identified belowTargeted validation:
Summary by CodeRabbit
New Features
Bug Fixes
Chores