Skip to content

Keep upstream LVGL out of the C format check's scope - #249

Merged
BenSeverson merged 1 commit into
mainfrom
claude/fix-lint-scope-lvgl-clone
Jul 29, 2026
Merged

Keep upstream LVGL out of the C format check's scope#249
BenSeverson merged 1 commit into
mainfrom
claude/fix-lint-scope-lvgl-clone

Conversation

@BenSeverson

Copy link
Copy Markdown
Owner

An interaction between #248 and #246, both merged today. Each is correct alone; together they break the format check for local and cloud development.

What happens

#248 moved the SessionStart hook's LVGL clone out of managed_components/ and into simulator/.lvgl. #246 widened the format check's roots to include simulator/. So on any container where the hook took the fallback path, ~1030 vendored upstream sources are now inside the find that decides what clang-format owns:

files listed
no simulator/.lvgl 58
with simulator/.lvgl 1089

make lint-c does not finish inside five minutes. Worse, scripts/format.sh — which the pre-push hook runs — would reformat the whole of upstream LVGL in place.

Why CI is green anyway

The ui-screenshots job still clones to managed_components/lvgl__lvgl, which is outside these roots, and it never runs lint-c in the same tree. So CI cannot see this. It only bites local and cloud development — precisely the people the fallback path was added for.

The fix

simulator/.lvgl/* joins the other deliberate prunes in scripts/c-sources.sh, with the reason recorded beside them.

Verification

With a populated simulator/.lvgl:

  • the list stays at 58 files, none of them LVGL's
  • make lint-c exits 0 in seconds instead of timing out

With no clone present the list is unchanged at 58. scripts/lint.sh clean, shellcheck -S warning clean.


Generated by Claude Code

#248 moved the SessionStart hook's LVGL clone out of managed_components/
and into simulator/.lvgl. #246 widened the format check's roots to
include simulator/. Each is fine alone; together they put ~1030 vendored
upstream sources inside the find that decides what clang-format owns.

On any container where the hook took the fallback path, `make lint-c`
goes from 58 files to 1089 and does not finish inside five minutes, and
`scripts/format.sh` — which the pre-push hook runs — would rewrite the
whole of upstream LVGL in place.

CI never sees it: the ui-screenshots job still clones to
managed_components/, outside these roots. So this only breaks local and
cloud development, which is precisely who the fallback path exists to
serve.

Pruned alongside the other deliberate exclusions, with the reason
recorded next to them.

Verified with a populated simulator/.lvgl: the list stays at 58 files,
none of them LVGL's, and `make lint-c` exits 0 in seconds rather than
timing out. Unchanged at 58 with no clone present; scripts/lint.sh and
shellcheck -S warning both clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PyJ47o5sWvpb9vMk1RNKkb
@BenSeverson
BenSeverson merged commit 258aad3 into main Jul 29, 2026
12 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.

2 participants