Skip to content

Commit af8423c

Browse files
ci(tooling): promote standards R4 lint to strict (#159)
Refs #95
1 parent 128a854 commit af8423c

5 files changed

Lines changed: 24 additions & 9 deletions

File tree

.github/workflows/affinescript-verify.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
verify:
4040
name: AffineScript Verify
4141
runs-on: ubuntu-latest
42-
# NON-BLOCKING (temporary): see header note. continue-on-error keeps the
42+
# advisory: see header note. continue-on-error keeps the
4343
# whole job advisory — including the compiler checkout/setup-ocaml/build
4444
# steps — so a toolchain/build problem cannot block merges or add
4545
# estate-wide red noise while the ports + build are sorted in follow-up.
@@ -78,6 +78,8 @@ jobs:
7878
7979
- name: Checkout AffineScript compiler
8080
if: steps.changed.outputs.any == 'true'
81+
# advisory: compiler checkout is report-only until the port backlog
82+
# is cleared and BLOCKING flips to true.
8183
continue-on-error: true
8284
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
8385
with:
@@ -87,13 +89,17 @@ jobs:
8789

8890
- name: Set up OCaml
8991
if: steps.changed.outputs.any == 'true'
92+
# advisory: setup failures should surface as signal without blocking
93+
# unrelated standards changes while AffineScript verification matures.
9094
continue-on-error: true
9195
uses: ocaml/setup-ocaml@e32b06a3e831ff2fbc6f08cf35be2085e3918014 # v3
9296
with:
9397
ocaml-compiler: "5.1"
9498

9599
- name: Build compiler
96100
if: steps.changed.outputs.any == 'true'
101+
# advisory: compiler build failures are reported by this job, not yet
102+
# merge-blocking, until the report-only porting phase ends.
97103
continue-on-error: true
98104
working-directory: .affinescript-compiler
99105
run: |
@@ -102,6 +108,8 @@ jobs:
102108
103109
- name: Verify changed .affine files
104110
if: steps.changed.outputs.any == 'true'
111+
# advisory: verification findings are emitted as warnings and job
112+
# summary entries until BLOCKING is intentionally enabled.
105113
continue-on-error: true
106114
working-directory: .affinescript-compiler
107115
run: |

.github/workflows/governance-reusable.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,8 @@ jobs:
382382
find . -type f -size +1M -not -path "./.git/*" | head -10 || echo "No large files"
383383
- name: EditorConfig check
384384
uses: editorconfig-checker/action-editorconfig-checker@4b6cd6190d435e7e084fb35e36a096e98506f7b9 # v2.1.0
385+
# advisory: formatting hygiene is reported from the reusable estate
386+
# bundle; repos opt into blocking formatter checks locally when ready.
385387
continue-on-error: true
386388
- name: Check documentation
387389
run: |

.github/workflows/hypatia-scan.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,8 @@ jobs:
259259
# See hyperpolymath/hypatia#213 (gate decoupling) and the exit-127
260260
# estate-wide breakage when gitbot-fleet/scripts/submit-finding.sh
261261
# no longer existed on the default branch.
262+
# advisory: Phase 2 learning submission is optional enrichment; the
263+
# security gate remains the baseline-aware severity check below.
262264
continue-on-error: true
263265
env:
264266
# All GitHub context values surface as env vars so the run
@@ -376,7 +378,7 @@ jobs:
376378
377379
- name: Comment on PR with findings
378380
if: github.event_name == 'pull_request' && steps.scan.outputs.findings_count > 0
379-
# Advisory only — posting findings as a PR comment must never gate
381+
# advisory: posting findings as a PR comment must never gate
380382
# the scan (hypatia#213 gate decoupling). Belt-and-braces alongside
381383
# the pull-requests: write permission above: a token/API hiccup or
382384
# a fork PR (read-only token) skips the comment, not the check.
@@ -411,4 +413,4 @@ jobs:
411413
repo: context.repo.repo,
412414
issue_number: context.issue.number,
413415
body: comment
414-
});
416+
});

Mustfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ checks:
1212
- name: format
1313
run: just fmt
1414
- name: tooling-version-integrity
15-
run: bash tasks/tooling-integrity-lint.sh
15+
run: bash tasks/tooling-integrity-lint.sh --strict

TOOLING-VERSION-INTEGRITY-POLICY.adoc

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,11 @@ Integrity sweep tracking issue).
137137

138138
* `tasks/tooling-integrity-lint.sh` — scans `.github/workflows/` for
139139
unversioned family-tool installs (Rule 1) and bare `continue-on-error`
140-
(Rule 4). Exit non-zero on any violation.
141-
* `contractiles/must/Mustfile` (canonical template) and this repo's live
142-
`Mustfile` carry a `tooling-version-integrity` mandatory check that
143-
runs the lint — so every repo adopting the canonical `must` contract
144-
inherits the gate (Rule 3, Rule 5).
140+
(Rule 4). R1 is always blocking; R4 is advisory by default and blocking
141+
with `--strict`.
142+
* `contractiles/must/Mustfile` (canonical template) carries a default
143+
`tooling-version-integrity` mandatory check so every repo adopting the
144+
canonical `must` contract inherits the R0/R1 gate (Rule 3, Rule 5).
145+
This repo's live `Mustfile` runs the lint with `--strict` because its
146+
local soft-gates are now explained; the reusable estate workflow keeps
147+
R4 advisory until each consumer repo is ready to promote it.

0 commit comments

Comments
 (0)