chore: ignore the ui-snapshot sweep's OUT/ directory - #1594
Conversation
`ci.ui-snapshots` runs `firmware/ui-snapshots.sh OUT`, and suite commands run with the repo root as their working directory, so the sweep writes ~312 PNGs into a repo-root `OUT/`. Only the script's own default, `ui-snapshots/`, was ignored, so `git add -A` after a local suite run staged every frame. CI is unaffected: it writes to `$RUNNER_TEMP/ui-snapshots`, outside the repo. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe ChangesUI snapshot output
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to This change prevents the UI snapshot sweep's generated root-level OUT/ files from being staged accidentally without affecting legitimate OUT directories elsewhere; no actionable merge-blocking risk remains after normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Seen on #1592 (finding 5): after a local
ci.ui-snapshotsrun,git add -Astages ~312 PNGs.Why it happens
The suite command in
testing/suites.tomlis:ui-snapshots.shtakes its output directory as$1and doesmkdir -p "$OUT"relative to theworking directory.
tools/suite_registry.pyruns every suite command with the repo root as itsworking directory, so the sweep writes into a repo-root
OUT/..gitignoreignoredui-snapshots/— the script's default — but notOUT, the name the suitepasses. So the one path a developer actually produces was the one path that was not ignored.
CI is unaffected:
.github/workflows/ci.ymlwrites to$RUNNER_TEMP/ui-snapshots, outside therepository.
The change
One entry,
/OUT/, beside the existingui-snapshots/line, with the reason recorded there.Root-anchored, following
/routes/,/tracks/and/wx-events/, so a legitimateOUTdirectoryelsewhere in the tree is unaffected.
Verification
The sweep itself was not run: the verification budget caps it at once per pull request and only
for changes that touch rendering, screens or i18n. This change touches none of them. Instead the
exact path the suite writes was materialized directly.
Before (
HEAD's.gitignore,OUT/populated):After:
python3 tools/suite_registry.py select --base origin/developreports0 changed path(s)andselects no suite, so no test run is warranted.
obc suites checkwas not run: no test source,validation command, workflow, registry or test policy changed.
No public documentation changed.
Worth a follow-up
OUTis the odd one out. The script documents its default asui-snapshots/, CI uses$RUNNER_TEMP/ui-snapshots, and only the suite registry saysOUT— an all-caps directory at therepository root that nothing else asks for. Pointing the suite at
ui-snapshotsinstead would bethe same size of change and would need no ignore rule at all. This PR does the defensive fix that
was asked for and keeps working for anyone who copies the suite command as written; collapsing the
third name is the owner's call.
🤖 Generated with Claude Code
Summary by CodeRabbit