Skip to content

Commit 6fec6ed

Browse files
committed
fix(ci): correct .hypatia-ignore format — rule:path, not bare path
The previous commit used a bare-path entry in .hypatia-ignore, but the governance bundle's `is_exempt` function uses `grep -qxF \"\${rule}:\${f}\"` — a fixed-string whole-line match against `${rule}:${path}`, not the plain path. Update the entry to the correct `cicd_rules/banned_language_file:tools/ res-to-affine/test/fixtures/sample.res` shape. Comment lines and blanks are tolerated by -xF (they never match the rule:path equality).
1 parent 04a8d3f commit 6fec6ed

1 file changed

Lines changed: 17 additions & 18 deletions

File tree

.hypatia-ignore

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
11
# SPDX-License-Identifier: MPL-2.0
22
#
33
# .hypatia-ignore — repo-scoped exemptions for the estate governance
4-
# bundle's anti-pattern scanner. Each non-comment line is a file path
5-
# (anchored: matched as `^${path}$` or `^${path}\b`) that the scanner
6-
# should NOT flag.
4+
# bundle's anti-pattern scanner. Format (per the bundle's `is_exempt`
5+
# function): each non-comment line is `${rule}:${path}` matched as a
6+
# fixed-string whole-line equality (`grep -qxF`).
77
#
8-
# Format documented inline in the governance reusable workflow's
9-
# `is_exempt` predicate; the first non-comment line below is the
10-
# pattern, the lines after `#` are the reason / rationale.
8+
# Comment lines (`#`) and blank lines are tolerated because they never
9+
# match the `rule:path` shape under -xF.
1110
#
1211
# ─── Migration-tool input fixtures ──────────────────────────────────
1312
#
14-
# The .res → .affine migration assistant (issue #57) needs a corpus
15-
# of real `.res` files in its test/fixtures/ directory so the walker
16-
# can be exercised end-to-end. The banned-language rule
17-
# (cicd_rules/banned_language_file) correctly flags `.res` files
18-
# everywhere in the estate — exempt the migration-tool fixture
19-
# specifically so it stops blocking every PR.
13+
# The .res → .affine migration assistant (issue #57) needs a corpus of
14+
# real `.res` files in its test/fixtures/ directory so the walker can
15+
# be exercised end-to-end. The banned-language rule correctly flags
16+
# `.res` files everywhere in the estate — exempt the migration-tool
17+
# fixture specifically.
2018
#
21-
# Why a side-channel exemption and not an inline pragma: the migration
22-
# walker emits line numbers from the fixture into its snapshot output,
23-
# and an inline pragma in the file header would shift those line
24-
# numbers and break the snapshot test. Path-based exemption avoids
25-
# touching the file content.
26-
tools/res-to-affine/test/fixtures/sample.res
19+
# Why side-channel exemption (this file) instead of an inline pragma:
20+
# the migration walker emits source line numbers from the fixture into
21+
# its snapshot output, and an inline pragma in the file header would
22+
# shift those line numbers and break the snapshot test. Path-based
23+
# exemption avoids touching the file content. See feedback memory
24+
# `feedback_inline_pragma_vs_snapshot_test` for the general principle.
25+
cicd_rules/banned_language_file:tools/res-to-affine/test/fixtures/sample.res

0 commit comments

Comments
 (0)