Repository navigation
Conversation
NeMo-RL is moving its nemo-lens pin to the v0.3.0 tag (7bcc03ce). An RL job installs Gym into its environment and resolves one nemo-lens, so Gym's pin has to match. The Lens changes since b0f977d4 are additive for Gym. Lens added a span_attributes no-op to its fallbacks, so Gym's fallback module mirrors it, as the fallback parity test requires. Signed-off-by: Ananth Subramaniam <ansubramania@nvidia.com>
…ad of adding an unused shim Signed-off-by: Ananth Subramaniam <ansubramania@nvidia.com>
The parity tests compared Gym's no-op stand-ins against nemo.lens.fallbacks, a module Gym never imports, and forced Gym to mirror Lens no-ops it does not call. What matters is that the stand-ins accept the calls Gym makes, so the behavior test now calls managed_span and span_cm with dotted attribute keywords, as Gym's call sites do. Signed-off-by: Ananth Subramaniam <ansubramania@nvidia.com>
iguehring-nvidia
previously approved these changes
Oct 9, 2026
| client-vs-server latency attribution stops working. | ||
|
|
||
| Gym is pinned to nemo-lens ``b0f977d4``, so rather than change lens this module creates | ||
| Gym is pinned to nemo-lens ``7bcc03ce``, so rather than change lens this module creates |
Contributor
There was a problem hiding this comment.
nit: should we get rid of the commit hash here such that one does need to change it here when bumping up in pyproject.toml?
Contributor
|
🌿 Preview your docs: https://nvidia-preview-pr-4272-1a51961d794c.docs.buildwithfern.com/nemo/gym |
…cstring Signed-off-by: Ananth Subramaniam <ansubramania@nvidia.com>
Resolve the uv.lock conflict with #4300 by taking main's lockfile and relocking with the nemo-lens v0.3.0 pin. Signed-off-by: Ananth Subramaniam <ansubramania@nvidia.com>
iguehring-nvidia
approved these changes
Oct 9, 2026
This was referenced Oct 22, 2026
7 tasks done
This branch was previously deployed
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.
What changed and why
NVIDIA-NeMo/RL#4607 moves NeMo-RL's nemo-lens pin from
b0f977d4to thev0.3.0tag (7bcc03ce). An RL job installs Gym into its environment and resolves a single nemo-lens, so Gym's pin has to match NeMo-RL's. This PR moves Gym to the same commit.[tool.uv.sources]now points nemo-lens at7bcc03ce3565d2be6858b819b049bcc4c3ec05b4, written as a full commit hash like NeMo-RL's. Inuv.lock, nemo-lens is the only package that changes.span_attributesno-op tonemo.lens.fallbacks, which tripped Gym's fallback parity tests. Those tests compared Gym's no-op stand-ins innemo_gym/telemetry/_fallbacks.pyagainstnemo.lens.fallbacks, a module Gym never imports, and forced Gym to mirror every Lens no-op whether or not Gym calls it. This PR removes them, along with the matching rule in the_fallbacks.pydocstring and the telemetry README.managed_spanandspan_cmwith dotted attribute keywords, the way Gym's call sites do.The other Lens changes between
b0f977d4andv0.3.0are additive for Gym:None of the APIs Gym calls changed.
Lens's package metadata still reports
0.2.0at this tag, souv.lockrecords0.2.0+7bcc03c. NeMo-RL's PR notes the same.No Gym issue was filed. This keeps Gym in step with the NeMo-RL change linked above.
Validation
pytest tests/unit_tests/telemetry: all pass. With**attributesremoved from the no-opmanaged_span, the behavior test fails, so it covers what the parity tests were meant to.pytest tests/unit_tests -n 8: every failure also fails on unmodifiedmainin this environment. They come from optional packages that are not installed (OpenSandbox, W&B, tenacity), and none of those files involve telemetry.pre-commit run --all-files: clean.Rollout evidence
I ran
gym eval runonexample_single_tool_callwith the simple agent andgpt-oss-20b(3 tasks), once frommain(nemo-lensb0f977d4) and once from this branch. Both runs had every span group on (span_groups=all) and used console export.main(b0f977d4)7bcc03ce)sandboxspans are not covered, because this environment has no sandbox. Running inside a NeMo-RL process is also not covered and needs an RL job built on both pins.