Skip to content

ci: fail on unread control-store state, unconstructed variants and new duplicates - #1310

Merged
kvlonge merged 1 commit into
mainfrom
ci/gate-d128-rules
Nov 5, 2026
Merged

kvlonge merged 1 commit into
mainfrom
ci/gate-d128-rules

Conversation

@kvlonge

@kvlonge kvlonge commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Why

Three static rules ran in warn mode: XSB076 (unread control-store state), XSB077 (unconstructed variants) and the new-duplicate check. check-ci runs fensu check without --warn, so the two warn-mode rules were never evaluated at all, and the duplicate check skipped with a warning when its base was missing. All three now fail the build on new code. Current main has 0 XSB076, 0 XSB077 and no new duplicate clusters.

Changes

  • fensu.toml: XSB076 and XSB077 move from warn to select. Their reasoned allowlists and exceptions stay; stale or malformed entries remain faults.
  • Makefile: check-dupes-new fails on new duplicated code, and fails (exit 2) when DUPES_BASE cannot be resolved instead of skipping.
  • verify.yml: the base is fetched on every event; a manual run uses origin/main.

Verification

  • make check-ci passes on this branch (fensu check: 0 faults; no new duplicates).
  • Negative case in CI, on test: negative case for the new static gates (do not merge) #1309 (on top of this branch; must fail):
    • copied function: static checks fail at check-dupes-new (1 new cluster, scratch_copy.py, base c05b834).
    • unread store column and unconstructed variant, with the copy removed so fensu check runs: static checks fail with XSB076 sqb_scratch_orders.shipped_note and XSB077 ScratchState::Closed.
  • make check-dupes-new DUPES_BASE=does-not-exist exits 2 with an error.

…w duplicates

XSB076 and XSB077 move from warn to select, so fensu check fails on them; check-ci ran fensu check
without --warn, so in warn mode they were never evaluated. Their reasoned allowlists and exceptions
stay, and stale or malformed entries remain faults. check-dupes-new now fails on new duplicated
code and fails when its base is missing instead of skipping. Verify fetches the base on every
event, origin/main for a manual run.
@kvlonge
kvlonge enabled auto-merge (squash) November 5, 2026 09:23
@kvlonge
kvlonge merged commit 3b7ad4c into main Nov 5, 2026
46 checks passed
@kvlonge
kvlonge deleted the ci/gate-d128-rules branch November 5, 2026 10:25
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.

1 participant