Skip to content

fix(ci): build Idris2 outside the checkout — main's proof gate is red - #53

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/idris2-gate-build-outside-checkout
Jul 17, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
fix/idris2-gate-build-outside-checkout

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

What

Make main's Idris2 Proof gate pass. It is red on main right now (run on merge commit 91b16104 = failure).

Why main went red

PR #52 merged the sound gate but with a broken toolchain step. The workflow's "Build & install Idris2" ran tar xzf inside the checkout, extracting Idris2-0.7.0/ — which ships hundreds of .idr files under libs/, benchmark/, docs/ — into the very tree the gate sweeps. The gate's rule "any .idr not in the manifest is an error" then fired on the compiler's own sources. Verified from the run-29559473259 log: FAIL: Idris2 modules present on disk but absent from the MANIFEST → Idris2-0.7.0/libs/base/....

The gate did exactly what it should. The workflow was polluting the tree it scanned.

Fix

  • Build the toolchain in a mktemp -d outside the checkout, so the only .idr the gate sees are this repo's.
  • Untrack src/interface/build/ttc/2025081600/** — committed TTC caches (build/ is already gitignored; these predate the rule). Not the CI cause — a genuine 0.7.0 build stamps ttc version 2023090800 and ignores a 2025081600 cache — but build output never belongs in git.

⚠️ Do not merge until the Idris2 Proof check on this PR is green

This is the fix for a gate that merged red once already (#52), and #51's real fix was likewise orphaned by a fast merge. Please let the check complete. Consider making Idris2 Proof a required status check so a red gate can't ride into main again.

🤖 Generated with Claude Code

The Idris2 Proof gate failed on its own commit (run 29559473259) for a
reason the gate got RIGHT: the build step ran `tar xzf` inside the
checkout, extracting Idris2-0.7.0/ (hundreds of .idr under libs/,
benchmark/, docs/) into the tree the gate sweeps. "Any .idr not in the
manifest is an error" then fired on the compiler's own sources.

Fix: build the toolchain in a mktemp dir outside the checkout, so the
only .idr files the gate sees are this repo's.

Also untrack src/interface/build/ttc/2025081600/** -- committed TTC
caches built by a different Idris2 (build/ is already gitignored; these
predated the rule). Not the CI cause (a genuine 0.7.0 build stamps ttc
version 2023090800 and ignores a 2025081600 cache), but build output
never belongs in git.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath merged commit 4b04ea8 into main Jul 17, 2026
16 checks passed
@hyperpolymath
hyperpolymath deleted the fix/idris2-gate-build-outside-checkout branch July 17, 2026 19:56
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