Skip to content

ci: core checks always report (required-ready); det sweep proves only the ports a translator change moves, shards up to 20 (#4825 1a, #4814 v1) - #4826

Merged
squid-protocol merged 2 commits into
mainfrom
ci/4825-required-checks
Oct 9, 2026
Merged

squid-protocol merged 2 commits into
mainfrom
ci/4825-required-checks

Conversation

@squid-protocol

@squid-protocol squid-protocol commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Steps 1a of #4825 and v1 of #4814.

1a: the core checks run on every PR, so they can be required. main has no required status checks; bot PRs auto-merged before their tests meant anything (#4820 turned main red). A required check must report on every PR.

  • det-sweep: no trigger path filter. det_sweep_plan.py holds the det inputs (DET_INPUTS) and plans mode none (0 shards) when no changed file is one, so det passes in about a minute. Files det never reads no longer widen a case plan to a full sweep.
  • ruff-audit, mypy-audit, smoke-test (full-suite/smoke-test), mainframe-ground-truth: the PR trigger drops its docs-only paths-ignore. Push filters are unchanged.

#4814 v1: prove only what a translator change moves. A change confined to gitgalaxy/tools/cobol_to_java/det/ used to re-prove every case on 6 runners (~30 min). Now the plan job runs det_port.py check (translate all cases at main and at HEAD; ~4 min locally, no Docker or JDK) and proves only the ports that differ, the touched cases and their dependents. The rest carry forward from main.

  • Anything that can move a verdict without moving a port byte (harness, proof_reach.py, oracle, generator) stays a full sweep, as does a missing or garbled diff.
  • The nightly run is always full (the honesty check).
  • Shards: MAX_SHARDS 6 → 20. A narrow plan starts one runner per ~3 cases.

Local check: a translator-only change with no port change plans 0 cases (88 carried forward).

Tests: test_det_sweep_fast.py 32 passed; pr_gates --fast 5/5; ruff and mypy audits clean.

Next (1b, a repo setting after this lands): a ruleset on main requiring det, ruff-audit, mypy-audit, full-suite, smoke-test, ground-truth.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TBJdDBRtJis5hzE244NQKV

squid-protocol and others added 2 commits October 9, 2026 18:52
…tep 1a)

main has no required status checks: every gate is a convention, and bot PRs auto-merged before their tests meant
anything (#4820 turned main red). A required check must report on EVERY PR, or a PR it skips waits forever.
- det-sweep: no trigger path filter; det_sweep_plan.py holds the det inputs (DET_INPUTS, moved from the trigger) and
  plans mode "none" (0 shards) when no changed file is one -- `det` then passes in about a minute. A file det never
  reads (docs, README, other engine code) also no longer widens a case-only plan to a full sweep.
- ruff-audit, mypy-audit, smoke-test (full-suite / smoke-test), mainframe-ground-truth: the pull_request trigger
  drops its docs-only paths-ignore (push filters unchanged).
Next (1b, repo setting once this lands): a ruleset on main requiring det, ruff-audit, mypy-audit, full-suite,
smoke-test and ground-truth.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TBJdDBRtJis5hzE244NQKV
…-sized shards up to 20 (#4814 v1)

A change confined to gitgalaxy/tools/cobol_to_java/det/ (translator + cobolrt runtime: everything a port's bytes come
from) used to re-prove every case on 6 runners (~30 min). Now the plan job runs `det_port.py check` (translate every
case at origin/main and at HEAD, no Docker / JDK; ~4 min locally) and plans only the ports that differ, the cases the
PR touched, and their dependents; the rest are carried forward from main. Anything that can move a verdict without
moving a port byte (harness, proof_reach.py, oracle, generator) stays a full sweep; a missing/garbled port diff is a
full sweep; the nightly schedule run is always full (the honesty check). Db2 cases a diff touches are listed
(db2_not_swept) -- CI skips Db2 as before.
MAX_SHARDS 6 -> 20 (a narrow plan still starts one runner per ~3 cases). Tests: 32 passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TBJdDBRtJis5hzE244NQKV
@squid-protocol squid-protocol changed the title ci: the core checks run on every PR, so they can be required (#4825 step 1a) ci: core checks always report (required-ready); det sweep proves only the ports a translator change moves, shards up to 20 (#4825 1a, #4814 v1) Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

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