Skip to content

fix(ci): install jq in the container so the Trope IR test actually runs - #32

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/ci-container-prereqs
Jul 27, 2026
Merged

fix(ci): install jq in the container so the Trope IR test actually runs#32
hyperpolymath merged 1 commit into
mainfrom
fix/ci-container-prereqs

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

CI / required is the last red check on main. After #31 fixed the version
assert, the job got two steps further and now fails at Validate repository
contracts
with exit code 2 and one line of output:

jq is required

Root cause

tests/check-examples.sh:15:

command -v jq >/dev/null || { echo "jq is required"; exit 2; }

The pinned idris2-pack image does not ship jq. So the Trope IR conformance
test — the one asserting every example lowers to valid Trope IR — has never
actually executed in CI.
It bailed before testing anything.

That makes this more than a build fix: it turns a step that always died early
into one that genuinely exercises the language's core guarantee.

Fix

Same class of problem as the missing xz in #28, so the step now handles both:
collect what is absent, install in a single apt-get pass, print both versions
so the log records what ran. A no-op on images that already have them.

Verified locally against origin/main (d29f89e)

bash -n over tests/ scripts/ ............... all parse
tests/check-examples.sh .................... exit 0  → "examples: all lower to valid Trope IR"
tests/aspect_tests.sh ...................... exit 0  → PASS=3 FAIL=0 WARN=0
scripts/check-root-shape.sh ................ exit 0  → 45 entries, 46 permitted
tests/workflows/validate_workflows_test.sh . exit 0  → Workflow validation PASSED

Note check-examples.sh skips the verdict round-trip when no sibling
tropecheck binary is built — that part still needs trope-checker, and is
reported as a note, not a pass.

🤖 Generated with Claude Code

`CI / required` failed at "Validate repository contracts" with exit code 2 and
a single line of output:

    jq is required

That comes from tests/check-examples.sh:15, which exits 2 when jq is absent.
The pinned idris2-pack image does not ship it, so the Trope IR conformance
test — the one that asserts every example lowers to valid Trope IR — has never
actually executed in CI. It bailed before testing anything.

This is the same class of problem as the missing xz fixed in #28, so the step
now handles both: it collects what is missing, installs in one apt-get pass,
and prints both versions so the log records what was used. Already-provisioned
images skip the install entirely.

Verified against origin/main (d29f89e) in a local checkout: all four contract
scripts exit 0, and `bash -n` parses every .sh under tests/ and scripts/.

    tests/check-examples.sh ................. exit 0  (examples lower to valid Trope IR)
    tests/aspect_tests.sh ................... exit 0  (PASS=3 FAIL=0 WARN=0)
    scripts/check-root-shape.sh ............. exit 0  (45 entries, 46 permitted)
    tests/workflows/validate_workflows_test.sh  exit 0

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

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath merged commit 481e11b into main Jul 27, 2026
32 of 33 checks passed
@hyperpolymath
hyperpolymath deleted the fix/ci-container-prereqs branch July 27, 2026 13:51
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