-
Notifications
You must be signed in to change notification settings - Fork 0
Phase 0 reconciliation: the submission guard now reads the submission #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 1 commit
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
9dc20e5
fix(ci): make validate-submission read the submission, and stop repor…
JiwaniZakir 964d77a
fix(ci): only analyse Python when Python exists
JiwaniZakir 9739e59
fix(ci): assert the validator honoured --submissions, and drop the CU…
JiwaniZakir 9f53deb
fix(ci): count submission records, not every file under submissions/
JiwaniZakir File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| # Every path needs an owner that GitHub can actually resolve. | ||
| # | ||
| # A handle that does not resolve makes the whole rule silently inert: GitHub does | ||
| # not warn, it just never requests the review. PLAN.md lists @pratik for | ||
| # submissions/**, but that is a placeholder, not a real handle. It is deliberately | ||
| # omitted until confirmed, and added at the Phase 12 transfer alongside the | ||
| # required-review rule. | ||
| # | ||
| # Note also that on a personal-account repository a code owner must have write | ||
| # access, and teams cannot be granted access at all. So @org/team entries would | ||
| # be inert here even if written correctly. They become usable after transfer to | ||
| # drexel-ice, not before. | ||
|
|
||
| * @JiwaniZakir | ||
|
|
||
| # This is the untrusted-input boundary. Everything under here arrives from | ||
| # outside the lab: checkpoints are pickles and predict.py is arbitrary Python. | ||
| /submissions/ @JiwaniZakir | ||
|
|
||
| # The workflows are the executable surface of this repository. A change here can | ||
| # turn a read-only validation job into one holding a write token, which is | ||
| # exactly the failure mode CODEOWNERS exists to slow down. | ||
| /.github/ @JiwaniZakir | ||
|
|
||
| # TODO(phase-12): once real handles are confirmed, restore these AND enable | ||
| # require_code_owner_reviews with required_approving_review_count: 1. Until both | ||
| # are on, CODEOWNERS is advisory only. | ||
| # | ||
| # /submissions/ @pratik-handle | ||
| # /.github/ @JiwaniZakir @second-reviewer |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| blank_issues_enabled: false | ||
| contact_links: | ||
| - name: Report a security vulnerability | ||
| url: https://github.com/JiwaniZakir/eda-schema-experiments/security/advisories/new | ||
| about: Please report privately rather than in a public issue. | ||
|
|
||
| - name: Something wrong with the leaderboard site | ||
| url: https://github.com/JiwaniZakir/eda-schema-leaderboard/issues/new/choose | ||
| about: Wrong numbers, broken pages and rendering issues belong in the site repo. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| name: My submission fails to ingest | ||
| description: Derivation broke on a folder that follows the documented layout | ||
| title: "[ingest]: " | ||
| labels: ["parser"] | ||
| body: | ||
| - type: markdown | ||
| attributes: | ||
| value: | | ||
| **This is our bug, not yours.** | ||
|
|
||
| Nothing is asked of submitters. Folders are ingested exactly as they come | ||
| off the cluster, and every field is derived. If derivation fails on your | ||
| folder, the parser needs fixing - please do not add a metadata file to | ||
| work around it, because that defeats the point. | ||
|
|
||
| - type: input | ||
| id: path | ||
| attributes: | ||
| label: Path to the folder | ||
| placeholder: submissions/your-name/total_area_prediction/... | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: textarea | ||
| id: error | ||
| attributes: | ||
| label: What CI reported | ||
| description: Paste the failing job output. It will be formatted as a code block. | ||
| render: shell | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: dropdown | ||
| id: where | ||
| attributes: | ||
| label: Which check failed | ||
| options: | ||
| - schema | ||
| - size | ||
| - Both | ||
| - Neither, the numbers came out wrong | ||
| validations: | ||
| required: true | ||
|
|
||
| - type: textarea | ||
| id: layout | ||
| attributes: | ||
| label: Directory layout | ||
| description: >- | ||
| The output of `find <your folder> -maxdepth 4 -type d`. Stage names | ||
| contain underscores and PDK directory names are uppercase, and most | ||
| parse failures come down to one of those two. | ||
| render: shell |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| version: 2 | ||
| updates: | ||
| # Actions only. This repository holds data and submissions, not a Python | ||
| # project - there is no pyproject.toml or lockfile here, and the validator it | ||
| # runs comes from the site repo, which has its own Dependabot config. | ||
| # | ||
| # This matters for the SHA-pinned workflows: pinning is only safe to maintain | ||
| # because Dependabot updates pins. Without this file the pins would rot. | ||
| - package-ecosystem: github-actions | ||
| directory: "/" | ||
| schedule: | ||
| interval: weekly | ||
| commit-message: | ||
| prefix: chore | ||
| groups: | ||
| actions: | ||
| patterns: ["*"] |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| <!-- | ||
| Submitting a model? Keep the checklist. Fixing a typo? Delete it. | ||
|
|
||
| Nothing is asked of submitters beyond the folder as it came off the cluster. | ||
| Every field on the leaderboard is derived - from paths, eval.log, run.log, | ||
| hparams.yaml, one checkpoint, and git log. If derivation fails on your folder, | ||
| that is a parser bug on our side, not a request for you to add metadata. | ||
| --> | ||
|
|
||
| ## What this changes | ||
|
|
||
| ## Submission checklist | ||
|
|
||
| - [ ] The folder is exactly as it came off the cluster, with nothing added | ||
| - [ ] No file exceeds 1 MB (CI blocks it; checkpoints are around 32 KB) | ||
| - [ ] No tfevents (`events.out.tfevents*`) - the targets in them are z-scored | ||
| - [ ] No PNGs - these belong in a Release and are referenced by URL | ||
| - [ ] Directory names follow the documented layout, with uppercase PDK names | ||
|
|
||
| ## Division | ||
|
|
||
| - [ ] **Open** - any training regime | ||
| - [ ] **Closed** - the canonical leave-one-circuit-out split, canonical features | ||
| and target | ||
|
|
||
| If you are unsure, leave both unchecked. Division is derived from the tree shape | ||
| rather than declared, and a per-circuit training set resolves to Open | ||
| automatically. You cannot misclassify yourself into Closed. | ||
|
|
||
| ## For maintainers | ||
|
|
||
| - [ ] `schema` and `size` both green, and `schema` reported a non-zero submission count | ||
| - [ ] Nothing under `.github/` changed, or the change was reviewed as a | ||
| permissions change |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| name: codeql | ||
|
|
||
| on: | ||
| pull_request: | ||
| push: | ||
| branches: [main] | ||
| schedule: | ||
| - cron: "0 7 * * 1" | ||
|
|
||
| permissions: {} | ||
|
|
||
| # Actions are pinned to commit SHAs because the analyze job holds | ||
| # `security-events: write`. Same rule as the site repo: any workflow with a write | ||
| # scope is pinned, so a retagged upstream cannot reach it. | ||
| # | ||
| # This repository holds data and submissions rather than application code, so | ||
| # `actions` is the language that matters most here - the workflows themselves are | ||
| # the executable surface. Python is included because submissions carry | ||
| # predict.py, which guard layer 4 will execute. | ||
|
|
||
| jobs: | ||
| analyze: | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: read | ||
| security-events: write | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| language: [actions, python] | ||
| steps: | ||
| - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 | ||
| with: | ||
| persist-credentials: false | ||
|
|
||
| - uses: github/codeql-action/init@c4dd10e44af883a891fe31ced449bcb4a6728b9b # v3 | ||
| with: | ||
| languages: ${{ matrix.language }} | ||
| queries: security-extended | ||
|
|
||
| - uses: github/codeql-action/analyze@c4dd10e44af883a891fe31ced449bcb4a6728b9b # v3 | ||
| with: | ||
| category: /language:${{ matrix.language }} |
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| # Submissions | ||
|
|
||
| One directory per submission: `submissions/<name>/`. | ||
|
|
||
| This directory is committed rather than left empty on purpose. CI validates | ||
| submissions by pointing the leaderboard's validator at this path, and a missing | ||
| directory is reported as a failure rather than as "nothing to check" - so the | ||
| directory existing is what keeps the guard honest before the first submission | ||
| lands. | ||
|
|
||
| ## What to send | ||
|
|
||
| The folder exactly as it came off the cluster. Nothing added. | ||
|
|
||
| Every leaderboard field is derived - from the directory path, `eval.log`, | ||
| `run.log`, `hparams.yaml`, one checkpoint per architecture, and `git log`. There | ||
| is no metadata file to fill in, and adding one will not help. If derivation fails | ||
| on your folder, that is a parser bug on our side: open an issue with the | ||
| "My submission fails to ingest" template. | ||
|
|
||
| Two fields are genuinely underivable. `seed` and raw predictions emit `null` and | ||
| set the badges `reproducibility: unverified` and `plots: static`. Neither blocks | ||
| a submission. | ||
|
|
||
| ## What CI enforces | ||
|
|
||
| - **`schema`** validates every `.json`, `.yaml` and `.yml` record under this | ||
| directory against the submission schema, and reports how many it examined. A | ||
| pull request that touches `submissions/` and yields zero records fails, because | ||
| "found nothing" must not read as "found nothing wrong". | ||
| - **`size`** rejects any file over 1 MB and any `events.out.tfevents*`. | ||
|
|
||
| Checkpoints are around 32 KB and belong here. PNGs are roughly 380 KB, are | ||
| regenerable, and belong in a Release referenced by URL. | ||
|
|
||
| ## Two things that bite | ||
|
|
||
| **Stage names contain underscores**, so `global_place` and `detailed_place` do | ||
| not survive splitting a directory name on `_`. Parsing is anchored against the | ||
| registry vocabulary instead. | ||
|
|
||
| **PDK directory names are uppercase** - `default_config_ASAP7_cts`, not `asap7`. | ||
| Registry IDs are lowercase and parsing normalizes to them. | ||
|
|
||
| ## Divisions | ||
|
|
||
| Division follows from the shape of your tree and is never declared. A | ||
| single-circuit-sized training set per leaf directory resolves to `open`, because | ||
| the canonical Closed split is leave-one-circuit-out. You cannot misclassify | ||
| yourself into Closed. |
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.