Skip to content

docs: point stale resources-server config paths at files on main - #4639

Merged
ananthsub merged 1 commit into
mainfrom
qiaochuz/docs-resources-server-config-paths
Oct 15, 2026
Merged

ananthsub merged 1 commit into
mainfrom
qiaochuz/docs-resources-server-config-paths

Conversation

@qiaochuz-nv

Copy link
Copy Markdown
Contributor

What does this PR do?

Three pages under fern/versions/latest/pages cite resources_servers/*/configs/*.yaml files that do not exist on main. This PR points each one at the file that replaced it. It also adds a docs test so the next rename that leaves a citation behind fails CI.

No issue or NVBug: found by scanning the latest pages for cited config paths and checking each one exists:

grep -rhoE 'resources_servers/[a-z0-9_]+/configs/[A-Za-z0-9_.-]+\.yaml' fern/versions/latest/pages \
  | sort -u | while read f; do [ -f "$f" ] || echo MISSING $f; done
Page Cited path Now Why
reference/cli-commands.mdx (gym env prefetch example) resources_servers/math/configs/math.yaml resources_servers/math_with_judge/configs/math_with_judge.yaml resources_servers/math/ never existed. The example came from the prefetch docstring added in #2161 and was copied into the page by #4093. math_with_judge.yaml is the math config the same page already uses for ng_e2e_collect_rollouts. The docstring in nemo_gym/cli/env.py gets the same fix.
contribute/rl-framework-integration/gym-rl-framework-integration-success-criteria.mdx math_with_judge/configs/bytedtsinghua_dapo17k.yaml (pinned to 299e8c04) math_with_judge/configs/dapo17k.yaml on main #859 deleted bytedtsinghua_dapo17k.yaml and moved its DAPO17k train and AIME24 validation sets into dapo17k.yaml. The pinned permalink still resolves, but it points at a config that main no longer ships. The other links in this page's tables already use main.
reference/faq.mdx (4 dataset upload/migrate examples) resources_servers/multineedle/configs/multineedle.yaml resources_servers/example_multi_step/configs/example_multi_step.yaml #291 renamed multineedle to example_multi_step. The upload command reads domain from this config, and example_multi_step.yaml sets it.

Versioned snapshots under fern/versions/v*/ are frozen and left as they shipped.

Test

tests/unit_tests/test_fern_docs_links.py::test_cited_resources_server_configs_exist scans every latest page for resources_servers/<name>/configs/<file>.yaml and asserts that each file exists. It skips my_weather_tool, which environment-tutorials/single-step-environment.mdx has the reader create. It also asserts that it found at least one citation, so a broken regex can't make it pass vacuously.

Before the fix

Gym 974d1a921 (main). The new test fails (1 failed) and reports these six citations:

fern/versions/latest/pages/contribute/rl-framework-integration/gym-rl-framework-integration-success-criteria.mdx:38: resources_servers/math_with_judge/configs/bytedtsinghua_dapo17k.yaml
fern/versions/latest/pages/reference/cli-commands.mdx:695: resources_servers/math/configs/math.yaml
fern/versions/latest/pages/reference/faq.mdx:41: resources_servers/multineedle/configs/multineedle.yaml
fern/versions/latest/pages/reference/faq.mdx:53: resources_servers/multineedle/configs/multineedle.yaml
fern/versions/latest/pages/reference/faq.mdx:91: resources_servers/multineedle/configs/multineedle.yaml
fern/versions/latest/pages/reference/faq.mdx:108: resources_servers/multineedle/configs/multineedle.yaml

The documented gym env prefetch example, run with venv installs stubbed out so that only config resolution and server discovery run (policy_model_name is normally supplied by env.yaml):

$ gym env prefetch "+config_paths=[responses_api_models/local_vllm_model/configs/local_vllm_model.yaml,resources_servers/math/configs/math.yaml]" ++policy_model_name=Qwen/Qwen3-4B-Instruct-2507
Error: config_paths entry 'resources_servers/math/configs/math.yaml' was not found. Looked in:
  - <Gym>/resources_servers/math/configs/math.yaml
Check the path is spelled correctly and is relative to your working directory, an extra root
(NEMO_GYM_EXTRA_ROOTS / --search-dir), or the Gym install root.
exit=1

After the fix

$ gym env prefetch "+config_paths=[responses_api_models/local_vllm_model/configs/local_vllm_model.yaml,resources_servers/math_with_judge/configs/math_with_judge.yaml]" ++policy_model_name=Qwen/Qwen3-4B-Instruct-2507
Pre-warming venv for: responses_api_models/local_vllm_model
Pre-warming venv for: resources_servers/math_with_judge
Pre-warming venv for: responses_api_agents/simple_agent
Pre-warming venv for: environment_servers/legacy_agent
Prefetch complete.
exit=0

gym env resolve --config now finds dapo17k.yaml and example_multi_step.yaml. It then stops at the usual unset-required-values check (policy_model / judge name), the same as any config resolved without an env.yaml.

Validation

  • pytest tests/unit_tests/test_fern_docs_links.py tests/unit_tests/test_opensandbox_documented_config.py: 25 passed, 21 subtests passed.
  • pytest tests/unit_tests/test_cli_main.py: passed (the env.py change only touches a docstring).
  • pre-commit run --all-files: all hooks pass.
  • Rollouts: N/A. The only change outside docs and tests is the example text in one docstring.

🤖 Generated with Claude Code

Three latest pages cite resources_servers/*/configs/*.yaml files that do not
exist on main:

- reference/cli-commands.mdx (and the `gym env prefetch` docstring it was
  copied from, #2161 -> #4093): resources_servers/math/configs/math.yaml never
  existed; use math_with_judge/configs/math_with_judge.yaml.
- contribute/.../gym-rl-framework-integration-success-criteria.mdx: the
  DAPO17k link pinned bytedtsinghua_dapo17k.yaml, which #859 folded into
  dapo17k.yaml; link that file on main.
- reference/faq.mdx: multineedle was renamed to example_multi_step in #291.

Add a docs test that every config path cited under latest exists, skipping
my_weather_tool, which the single-step tutorial has the reader create.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: qiaochuz <qiaochuz@nvidia.com>
@qiaochuz-nv qiaochuz-nv added docs Documentation-only updates or documentation debt area:docs Generic documentation without another dominant domain needs-review PR is ready for code review and waiting on a reviewer labels Oct 15, 2026
@copy-pr-bot

copy-pr-bot Bot commented Oct 15, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@qiaochuz-nv
qiaochuz-nv requested a review from yaoyu-33 October 15, 2026 17:25
@qiaochuz-nv

Copy link
Copy Markdown
Contributor Author

/ok to test 1023e7f

@github-actions

Copy link
Copy Markdown
Contributor

@ananthsub
ananthsub added this pull request to the merge queue Oct 15, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🔄 Merge queue validation started! You can track the progress here: https://github.com/NVIDIA-NeMo/Gym/actions/runs/38786930668

Merged via the queue into main with commit 17a73e3 Oct 15, 2026
51 of 56 checks passed
@ananthsub
ananthsub deleted the qiaochuz/docs-resources-server-config-paths branch October 15, 2026 18:54
@qiaochuz-nv

Copy link
Copy Markdown
Contributor Author

Retrospective QA-fix tracking issue: #4699

This branch was previously deployed

1 inactive deployment
public — 1023e7f5 Deployed Oct 15, 2026 by copy-pr-bot[bot] via release / finalize / notify #5533
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:docs Generic documentation without another dominant domain docs Documentation-only updates or documentation debt needs-review PR is ready for code review and waiting on a reviewer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants