Skip to content

ci: close the preflight parity gap for ll-identity-selftest - #2867

Closed
gertybotbot wants to merge 1 commit into
hew-lang:mainfrom
gertybotbot:ci/2860-parity-gap-ll-identity-selftest
Closed

ci: close the preflight parity gap for ll-identity-selftest#2867
gertybotbot wants to merge 1 commit into
hew-lang:mainfrom
gertybotbot:ci/2860-parity-gap-ll-identity-selftest

Conversation

@gertybotbot

Copy link
Copy Markdown
Contributor

make ll-identity-selftest is an unconditional step in ci.yml but was absent
from CI_REQUIRED_CHECKS and from the dispatcher's fallback lane, so
make ci-preflight never executed it. A change to scripts/ll-byte-identity.sh
passed local preflight and only failed in CI -- the exact drift the parity
self-test exists to prevent. The step also sits outside every CI-PARITY-STEPS
marker block, so the parity checker could not see the omission either.

Wire it in properly rather than exempt it: the target runs
scripts/ll-identity-selftest.sh against synthetic .ll snippets, needs no
compiler build, and completes in ~0.1s, so it costs local preflight nothing.

  • CI_REQUIRED_CHECKS: add the ll-identity-selftest entry
  • fallback lane: add_command "make ll-identity-selftest" + 15s estimate
  • corpus-floors.tsv: ci-required-checks 32 -> 33, in this same commit as the
    floor's own failure message instructs

Also document the one remaining genuine exemption. make licenses-check
(ci.yml) is likewise unconditional, outside the markers, and absent from
CI_REQUIRED_CHECKS -- but there it is the right call, because it needs
cargo-about at a pinned version, installed by the step immediately above.
Record that rationale inline following the existing leak-scan convention, so
the next person auditing this does not have to re-derive it.

The other six unconditional out-of-marker run: make steps are already
covered via make lint or an existing add_command, so the residual after
this commit is zero.

Verification: check-preflight-ci-parity.sh 33/33 and 28/28 (rc=0),
preflight-parity-selftest.sh 5/5, ll-identity-selftest.sh 6/6,
check-corpus-floors.sh 21/21, ci.yml parses, dispatcher passes bash -n.

Closes #2860

`make ll-identity-selftest` is an unconditional step in ci.yml but was absent
from CI_REQUIRED_CHECKS and from the dispatcher's fallback lane, so
`make ci-preflight` never executed it. A change to scripts/ll-byte-identity.sh
passed local preflight and only failed in CI -- the exact drift the parity
self-test exists to prevent. The step also sits outside every CI-PARITY-STEPS
marker block, so the parity checker could not see the omission either.

Wire it in properly rather than exempt it: the target runs
scripts/ll-identity-selftest.sh against synthetic .ll snippets, needs no
compiler build, and completes in ~0.1s, so it costs local preflight nothing.

- CI_REQUIRED_CHECKS: add the ll-identity-selftest entry
- fallback lane: add_command "make ll-identity-selftest" + 15s estimate
- corpus-floors.tsv: ci-required-checks 32 -> 33, in this same commit as the
  floor's own failure message instructs

Also document the one remaining genuine exemption. `make licenses-check`
(ci.yml) is likewise unconditional, outside the markers, and absent from
CI_REQUIRED_CHECKS -- but there it is the right call, because it needs
cargo-about at a pinned version, installed by the step immediately above.
Record that rationale inline following the existing leak-scan convention, so
the next person auditing this does not have to re-derive it.

The other six unconditional out-of-marker `run: make` steps are already
covered via `make lint` or an existing add_command, so the residual after
this commit is zero.

Verification: check-preflight-ci-parity.sh 33/33 and 28/28 (rc=0),
preflight-parity-selftest.sh 5/5, ll-identity-selftest.sh 6/6,
check-corpus-floors.sh 21/21, ci.yml parses, dispatcher passes bash -n.

Closes hew-lang#2860
@gertybotbot

Copy link
Copy Markdown
Contributor Author

Closing as superseded — the fix landed independently in f1f9972e0 ("fix(ci): add ll-identity-selftest to preflight parity checks", 2026-08-07), one day before this PR was opened. Both close #2860.

Found while rebasing this branch onto 4ce27c77d after it went CONFLICTING. On current main:

  • add_command "make ll-identity-selftest" is already present in the dispatcher's fallback lane (line 923) — this PR's substantive change.
  • The CI_REQUIRED_CHECKS table and the --ci-required flag this PR also edited have been removed entirely, along with scripts/check-preflight-ci-parity.sh and scripts/corpus-floors.tsv, by the fixture/corpus refactor (c6a642f6e). Those hunks have no target left.
  • The only unlanded residue is a 15s command_timeout_floor entry. The default floor is 0, which means "use CMD_TIMEOUT" — an ample budget for a ~0.1s self-test. No behavioural gap.

Nothing here is worth carrying forward, so this needs no review time. Reopen if the timeout floor is wanted as a standalone one-liner.

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.

ci: ll-identity-selftest is unconditional in CI but invisible to the preflight↔CI parity checker

1 participant