Skip to content

ci: sync the family files to v0.0.51 and use its tidy filter - #262

Merged
siracozmen01 merged 2 commits into
mainfrom
ci/family-v0.0.48
Nov 4, 2026
Merged

siracozmen01 merged 2 commits into
mainfrom
ci/family-v0.0.48

Conversation

@siracozmen01

@siracozmen01 siracozmen01 commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Problem

.github v0.0.48 adds the family's tools/tidy_filter.sh, which prints clang-tidy's header filter for a build tree, and v0.0.50 and v0.0.51 add a conventions rule on how state a caller holds is checked (Rawframe-Project/.github#119 and Rawframe-Project/.github#120). This repository lacks it, carries an older docs/internals/maul-conventions.md, pins the reusable workflows at v0.0.42 and v0.0.45, and builds the filter itself in two places.

Change

  • The family files are synced to v0.0.51 with family_sync.py --write: tools/tidy_filter.sh is added, and docs/internals/maul-conventions.md gains the rule that every clang-tidy call takes its header filter from it and the rule on state a caller holds. AGENTS.md lists tidy_filter.sh among the shared files.
  • Every reusable workflow and the docs-check action are pinned at 972ea41c6abf2652d3b067e57bf0713f1661cf0e # v0.0.51. Between the old pins and v0.0.51 only pr-title.yml changed among the workflows, and its old pin, v0.0.45, already had that change.
  • ci.yml's clang-tidy step and tools/check.sh's tidy() set filter=$(tools/tidy_filter.sh <tree>) on a line of its own, so a tree without the cache entry stops the step instead of tidying with an empty filter, and pass --header-filter="$filter". tools/check.sh's own header_filter() is gone. A changed header still tidies every source.

Verification

  • family_sync.py --check from v0.0.51 reports 0 differences.
  • In a fresh clone of this branch, with only a header changed (return value == value; planted in src/bits.h), tools/check.sh changed fails on misc-redundant-expression in src/bits.h, and the ci.yml step's commands report it on the Release and Debug presets. tools/tidy_filter.sh on a tree whose cache lacks the entry exits 1.
  • tools/check.sh changed passes on the clean branch, and shellcheck -S warning is clean on tools/check.sh and tools/tidy_filter.sh.

Closes #261

@siracozmen01 siracozmen01 added the chore Build, CI, tooling, maintenance label Nov 4, 2026
@siracozmen01 siracozmen01 changed the title ci: sync the family files to v0.0.48 and use its tidy filter ci: sync the family files to v0.0.51 and use its tidy filter Nov 4, 2026

@siracozmen01 siracozmen01 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review at 56ee171. No changes needed. Read, not run. CI is green at this head.

  • The two assignments. Neither is local x=$(...), and neither is inside an if condition, so a failure of the script stops the run.
    • In ci.yml's clang-tidy step, filter=$(tools/tidy_filter.sh "out/tidy-$build") is a plain statement inside the for build loop, after the configure. The job's default shell is bash (ci.yml:32), which GitHub runs with -e, and errexit stays active in a for body.
    • In tools/check.sh, tidy() declares local build filter on its own line, then assigns filter=$(tools/tidy_filter.sh "$out/check-tidy-$build") as a plain statement, under set -euo pipefail (check.sh:32). tidy is called in the body of an if, not its condition, so errexit is not suspended. header_filter is gone.
  • The header-only rule is kept. The changed tier still sets headers=1 for a changed src/*.h (not below src/) or include/*.h, and then tidies src/*.c whole, as before. This PR does not touch that loop.
  • Family files. tools/tidy_filter.sh is d61928e and docs/internals/maul-conventions.md is 80f34b2, the canonical blobs at 972ea41. AGENTS.md lists tidy_filter.sh after run_quarantine.sh, and no other word of the line changed.
  • Pins. All seven .github references are the full 972ea41 sha: changes, docs-check, zizmor, cpp and cache-prune in ci.yml, plus pr-gate.yml and pr-title.yml.
  • ci: is right at 1.x. Nothing a program sees changes, so no release follows.

@siracozmen01
siracozmen01 merged commit 4389d41 into main Nov 4, 2026
25 checks passed
@siracozmen01
siracozmen01 deleted the ci/family-v0.0.48 branch November 4, 2026 03:19
@siracozmen01 siracozmen01 mentioned this pull request Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Build, CI, tooling, maintenance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sync the family files to .github v0.0.51 and use its tidy filter

1 participant