Skip to content

feat(parsers): add pydantic schema for the RCCL config section - #338

Open
speriaswamy-amd wants to merge 1 commit into
speriaswamy/cvsman-04-emit-error-basefrom
speriaswamy/cvsman-05-rccl-schema
Open

feat(parsers): add pydantic schema for the RCCL config section#338
speriaswamy-amd wants to merge 1 commit into
speriaswamy/cvsman-04-emit-error-basefrom
speriaswamy/cvsman-05-rccl-schema

Conversation

@speriaswamy-amd

Copy link
Copy Markdown
Contributor

Part 5 of 14 in a stack for AIMVT-276. Base: #337.

Why

This is the first pilot suite for AIMVT-276 ("implement cvs man"). Today RCCL config parameters are documented, unevenly, via _comment_*/_example_* pseudo-keys inside the JSON. This PR gives rccl a pydantic model so a later PR in this stack can introspect it for cvs man — and deletes the JSON clutter once that lands.

Defaults are taken from the .get(key, default) call sites in rccl_lib.py / cvs/tests/rccl/, not the sample config — several disagree with what actually ships. net_dev_list and ucx_tls are read at runtime but appear in no shipped sample; they're documented here for the first time.

What changed

  • cvs/parsers/config_schemas/rccl.py (new) — RcclMpiParams, RcclTestParams, RcclCvsParams, RcclConfigFile.
  • cvs/parsers/config_schemas/__init__.py (new) — re-export point; schemas.py is already ~1300 lines, so per-suite models get their own module here instead of growing it further.

All models are extra="allow" and documentation-only — not wired into runtime validation in this stack, since RCCL configs have never been validated and AGENTS.md requires backward compatibility with existing customer configs.

First of the pilot suites for AIMVT-276 (cvs man): pydantic models become
the single source of truth for a config section's parameters instead of the
_comment_*/_example_* keys currently living inside the JSON. Defaults are
taken from the .get(key, default) call sites in rccl_lib.py and
cvs/tests/rccl/, not the sample config -- several disagree with what
actually ships (e.g. net_dev_list and ucx_tls are read but never appear in
any sample).

New cvs/parsers/config_schemas/ subpackage: schemas.py is already ~1300
lines, so per-suite models get their own module, re-exported from
config_schemas/__init__.py.

AIMVT-276.
@speriaswamy-amd
speriaswamy-amd force-pushed the speriaswamy/cvsman-05-rccl-schema branch from 75fd4b0 to 8620a2f Compare August 14, 2026 20:33
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.

1 participant