Repository navigation
Stop treating pipeline-assigned fields as system_desc.json fields - #117
Open
arav-agarwal2 wants to merge 12 commits into
Open
arav-agarwal2 wants to merge 12 commits into
arav-agarwal2 wants to merge 12 commits into
Conversation
The pipeline assigns the submission ID (rules 8.5), so it is not a 8.2 field. Declaring it made model_dump write "submission_id": null into every bundled system_desc.json and rejected a v0.7 numeric id. Part of mlcommons/endpoints_policies#143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35
The bundle records the pipeline-assigned id as the <submission_id>/ directory, so a value left in a run's system_desc.json from a v0.7 template is stale. Part of mlcommons/endpoints_policies#143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35
A copy left over from a v0.7 template says nothing about the system, so points whose copies differ no longer fail system-description-consistency. Part of mlcommons/endpoints_policies#143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35
Part of mlcommons/endpoints_policies#143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35
Part of mlcommons/endpoints_policies#143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35
Part of mlcommons/endpoints_policies#143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35
|
MLCommons CLA bot All contributors have signed the MLCommons CLA ✍️ ✅ |
The pipeline assigns them as it does the submission ID, so name all three in PIPELINE_ASSIGNED_FIELDS for the builder and checker to share. Part of mlcommons/endpoints_policies#143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35
Part of mlcommons/endpoints_policies#143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35
Part of mlcommons/endpoints_policies#143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35
Part of mlcommons/endpoints_policies#143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35
Part of mlcommons/endpoints_policies#143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35
Part of mlcommons/endpoints_policies#143. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35
There was a problem hiding this comment.
🟢 Approval recommended
The implementation consistently addresses legacy parsing, generated output, and cross-point comparison with comprehensive targeted tests.
0 open findings
What changed in this PR
Removes pipeline-assigned metadata from generated and validated system_desc.json files while preserving compatibility with legacy submissions.
Changes:
- Defines and removes pipeline-assigned fields during bundle construction.
- Excludes legacy values from consistency checks.
- Adds model, checker, and builder coverage for all affected fields and value types.
| File | Description |
|---|---|
src/submission_checker/models/file/system.py |
Removes declared pipeline fields and defines their shared names. |
src/submission_checker/checker.py |
Ignores pipeline fields during consistency checks. |
src/endpoints_submission_cli/submissions/builder.py |
Drops stale pipeline fields before validation and output. |
tests/submission_checker/test_models.py |
Tests parsing and serialization behavior. |
tests/submission_checker/test_checker.py |
Tests validation and consistency behavior. |
tests/endpoints_submission_cli/submissions/test_builder.py |
Tests omission from generated bundles. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This branch has not been 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.
Part of mlcommons/endpoints_policies#143. Rules side: mlcommons/endpoints_policies#144.
The pipeline assigns the submission ID (rules §8.5) and the submission and publication dates, and the bundle records the ID only as the
<submission_id>/directory (§8.1). The CLI still treated all three (submission_id,submission_date,publish_date) assystem_desc.jsonfields, left over from v0.7:system_desc.jsongot all three asnull.SystemDescriptiondeclared them, and the builder writesmodel_dump(), so the keys were added even when the submitter's file had none. (Thesubmission_identry is the one reported in the issue.)system-description-valid, because the fields were typedstr | None.system-description-consistency, since the fields were compared like any system field.Changes
PIPELINE_ASSIGNED_FIELDSinmodels/file/system.pynames the three keys.SystemDescriptionno longer declares them;extra="allow"still parses a leftover key of any type, andmodel_dumpno longer invents them.system_desc.json, next to where it already normalisesdivisionand the availability spellings._IGNORED_SYSTEM_DESC_FIELDS), for bundles that reach it without going through the builder.Nothing read these attributes on
SystemDescription.Testing
test_models.py,test_checker.pyandtest_builder.py, each run for all three fields. 21 of the 27 new cases fail onmain(the other 6 pin that string and null values keep parsing); all pass here.pytest: 1609 passed.ruff check src,ruff format --checkon the changed files, andmypyare clean, and the Sphinx docs build has no new warnings.🤖 Generated with Claude Code
https://claude.ai/code/session_01N2grVghMMtp7LPurYJ5o35