Skip to content

Require config.yaml beside point.yaml - #130

Merged
arav-agarwal2 merged 1 commit into
mainfrom
feat/require-config-yaml
Oct 12, 2026
Merged

arav-agarwal2 merged 1 commit into
mainfrom
feat/require-config-yaml

Conversation

@arav-agarwal2

Copy link
Copy Markdown
Collaborator

Summary

mlcommons/endpoints_policies#146 puts config.yaml ("Loadgen configuration file") back in §8.1's point directory, next to point.yaml. Since v1.0 the CLI had treated it as optional. This makes it required wherever the CLI reads a point:

Where Change
runs create (runs/parser.py) config.yaml joins the required run files; it must be a YAML mapping.
Bundle builder (submissions/builder.py) An archive without config.yaml fails the build with a message citing §8.1. It was already copied into r<N>/ beside point.yaml, so the bundle layout is unchanged.
Checker New rule config-file-present (§8.1), run on every r<N>/ whether or not its point.yaml loaded. Fails if the file is missing or isn't a YAML mapping. Nothing else in the checker reads it.
layout.py CONFIG_YAML added to REQUIRED_RUN_FILES; the docstring tree shows it.

Also updated: the rule's text in messages.yaml, the README rule table and tree, and runs.md, submissions.md, endpoints-submission-cli.md and architecture.md. None of them call config.yaml optional any more.

The run-type fallback is unchanged: datasets[].type from config.yaml, then dataset_type from point.yaml. Only its wording changed, since "no config.yaml" can no longer happen.

Impact on existing data

  • All 125 runs in published or in-review submissions already carry a config (checked read-only in production).
  • All 101 point folders in test_submissions/ have config.yaml.
  • All 9 point folders on NVIDIA's test review branch (submission/ad254a9c) have config.yaml, so they pass the new rule.

Testing

  • pytest: 1720 passed, 1 failed. The failure is test_builder.py::…test_a_separate_accuracy_run_still_wins, which fails on main too.
  • ruff and mypy src are clean.
  • The five tests that asserted config.yaml was optional now assert the opposite.
  • New tests cover a missing or non-mapping file in the parser, the builder and the checker, and that the builder ships config.yaml beside point.yaml.

🤖 Generated with Claude Code

endpoints_policies #146 puts config.yaml (the loadgen configuration)
back in §8.1's point directory. Make it required everywhere the CLI
reads a point: runs create rejects a run folder without it, the bundle
builder rejects an archive without it, and the checker's new
config-file-present rule flags any r<N>/ that lacks one or holds
something other than a YAML mapping. Docs and README no longer call it
optional.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

MLCommons CLA bot All contributors have signed the MLCommons CLA ✍️ ✅

@arav-agarwal2
arav-agarwal2 merged commit f367913 into main Oct 12, 2026
7 checks passed
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