Skip to content

docs: notice recommending NeMo-Gym for benchmarks and rollouts; pin mcp<2.0 - #1512

Merged
gwarmstrong merged 9 commits into
mainfrom
georgea/readme-gym-notice
Jul 28, 2026
Merged

docs: notice recommending NeMo-Gym for benchmarks and rollouts; pin mcp<2.0#1512
gwarmstrong merged 9 commits into
mainfrom
georgea/readme-gym-notice

Conversation

@gwarmstrong

@gwarmstrong gwarmstrong commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

Adds a short notice to the top of the README and the docs landing page encouraging users to move their rollout workflows to NeMo-Gym and to implement new benchmarks there, while noting that Nemo-Skills will continue to add support for running them. Also pins mcp<2.0, since mcp 2.0.0 (released 2026-07-28) removed the streamablehttp_client alias that nemo_skills/mcp/clients.py imports, which was breaking CI at import time for every run.

Summary by CodeRabbit

  • Documentation
    • Added top-of-document notices directing users to migrate rollout workflows and implement new benchmarks in NeMo-Gym.
    • Confirmed continued support for running NeMo-Gym benchmarks with existing cluster/server/SLURM configurations.
    • Documented the experimental ns nemo_gym_rollouts command and warned its interface may change.
  • Chores
    • Updated dependency constraints: set mcp<2.0, raised wandb to >=0.27.1, and modernized pipeline constraints by removing the strict Click pin and adding typer >= 0.16.
    • Refreshed dependency conflict notes for the httpx[http2] override (no version changes).

…outs

Add a short notice at the top of the README (and the mirrored docs
landing page) recommending NeMo-Gym for evaluation and for contributing
new benchmarks, while making clear that Nemo-Skills evaluation continues
to work and is still maintained.

The notice also points at the existing path for running NeMo-Gym
benchmarks through the Nemo-Skills pipeline machinery. `ns
nemo_gym_rollouts` has been available for a while but had no
documentation, so add a pipelines page covering self-hosted and
pre-hosted policy servers, the Hydra passthrough arguments, seed-based
fan-out, and container resolution.

Signed-off-by: gwarmstrong <gwarmstrong@users.noreply.github.com>
Make the notice clearer that we encourage moving rollout workflows to
NeMo-Gym and implementing new benchmarks there, while Nemo-Skills
continues to gain orchestration and execution support for running those
benchmarks.

Drop the ns nemo_gym_rollouts documentation page. The interface is still
experimental and likely to change, so it is mentioned in the notice
rather than documented in full.

Signed-off-by: gwarmstrong <gwarmstrong@users.noreply.github.com>
Signed-off-by: gwarmstrong <gwarmstrong@users.noreply.github.com>
Signed-off-by: gwarmstrong <gwarmstrong@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

README and documentation homepage notes announce the NeMo-Gym migration and experimental rollout interface. Dependency requirements constrain MCP below 2.0, update pipeline CLI compatibility, set a minimum W&B version, and revise an HTTPX override comment.

Changes

NeMo-Gym Documentation and Dependency Compatibility

Layer / File(s) Summary
Add NeMo-Gym migration notices
README.md, docs/index.md
Adds guidance to migrate rollout workflows and new benchmarks to NeMo-Gym, confirms continued support for running NeMo-Gym benchmarks, and references the experimental rollout command.
Update dependency compatibility constraints
core/requirements.txt, requirements/pipeline.txt, pyproject.toml
Constrains mcp below 2.0, adds wandb >= 0.27.1, replaces the pipeline click pin with typer >= 0.16, and updates the HTTPX override comment without changing the override value.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

  • NVIDIA-NeMo/Skills#1507: Overlaps on the dependency constraints in core/requirements.txt, requirements/pipeline.txt, and the related pyproject.toml comment.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the two main changes: NeMo-Gym migration notices and the mcp<2.0 pin.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch georgea/readme-gym-notice

Comment @coderabbitai help to get the list of available commands.

…ery CI run

mcp 2.0.0 was published on 2026-07-28 and dropped the deprecated
streamablehttp_client alias, keeping only streamable_http_client. The
requirement was unpinned, so CI began installing 2.0.0 and failing at
import time in nemo_skills/mcp/clients.py.

That module is on the import path for the ns CLI itself (cli -> eval ->
generate -> model -> mcp.utils -> mcp.clients), so the failure takes down
the entire unit test suite at collection, not just the MCP tests.

Pin below 2.0 to unblock CI. The forward fix is to rename the three call
sites to streamable_http_client and verify the 2.0 transport signature,
which is left for a follow-up.

Signed-off-by: gwarmstrong <gwarmstrong@users.noreply.github.com>
@gwarmstrong gwarmstrong changed the title docs: notice recommending NeMo-Gym for benchmarks and rollouts docs: notice recommending NeMo-Gym for benchmarks and rollouts; pin mcp<2.0 Jul 28, 2026
@gwarmstrong
gwarmstrong enabled auto-merge (squash) July 28, 2026 19:57
Cherry-picked from #1507 (fix/security-dependency-floors), which is the
last configuration in which the full CPU suite passed (725 passed, 0
failed on 2026-07-14).

With click pinned below 8.2 the ns CLI stops accepting underscore-style
option names, so every test that shells out to `ns eval --output_dir=...`
or `ns summarize_results --max_seq_len=...` fails with "Missing option
'--output-dir'" / "No such option: --max_seq_len". The typer floor moves
to 0.16 alongside it because that is the first release compatible with
click 8.2 (fixes the make_metavar break that motivated the original pin).

Only the CLI-relevant pair is taken here. #1507's litellm, wandb and stem
security floors are left to that PR.

Signed-off-by: gwarmstrong <gwarmstrong@users.noreply.github.com>
Dropping the click<8.2 cap alone was not enough: wandb 0.26.1 only
requires click>=8.0.1, so uv still settled on click 8.1.8 and the CPU
suite failed identically (10 failed, 685 passed).

wandb 0.27.1 is the first release requiring click>=8.2.0, which is what
actually moves the resolver. Taken from #1507, the last configuration in
which the full suite passed.

Signed-off-by: gwarmstrong <gwarmstrong@users.noreply.github.com>
This is the actual root cause of the CPU suite failures, and the reason
removing the repo's own `click < 8.2.0` cap changed nothing: litellm
1.83.14 declares an exact `click==8.1.8` dependency, capping the entire
tree below click 8.2 regardless of what this repo asks for.

uv spelled it out when wandb>=0.27.1 was added:

    Because wandb>=0.27.1 depends on click>=8.2.0 and litellm==1.83.14
    depends on click==8.1.8, we can conclude that litellm==1.83.14 and
    wandb>=0.27.1 are incompatible.

litellm 1.84.10 relaxes that to click>=8.0.0,<9.0 (and clears
GHSA-4xpc-pv4p-pm3w). With it, `uv pip install -e .[dev]` resolves to
click 8.4.2 / typer 0.27.0 / wandb 0.28.1.

Taken from #1507 together with the wandb floor and the click cap removal;
the three only work as a set.

Signed-off-by: gwarmstrong <gwarmstrong@users.noreply.github.com>
Root cause of the 10 CPU-test failures. typer 0.27.0 (released
2026-07-15) generates dash-separated option names from the Python
parameter name, so `output_dir` became `--output-dir`. Every `ns`
command, every test and every doc example passes the underscore form,
so the whole suite broke the day after 0.27.0 shipped. `typer` had no
upper bound, so CI picked it up silently.

Verified against a real install of this package rather than a synthetic
typer app, which does not reproduce the difference:

    typer 0.26.8 -> ns eval --help shows --output_dir, parses OK
    typer 0.27.0 -> ns eval --help shows --output-dir, rejects it

The cap is deliberately narrow. Lifting it needs a repo-wide rename of
the option style in commands, tests and docs, which belongs in its own
change.

Signed-off-by: gwarmstrong <gwarmstrong@users.noreply.github.com>
@gwarmstrong
gwarmstrong merged commit e06c9b9 into main Jul 28, 2026
5 checks passed
@gwarmstrong
gwarmstrong deleted the georgea/readme-gym-notice branch July 28, 2026 22:12
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