Skip to content

Commit d29f89e

Browse files
fix(ci): align the Idris2 version assert with the pinned image (0.8.0) (#31)
Now that #30 made the assert diagnosable, the real mismatch is visible: ``` idris2 --version -> Idris 2, version 0.8.0-6ca00e72e ::error::expected Idris 2 0.7.0 ``` The digest-pinned `idris2-pack` image ships **0.8.0**, so the `0.7.0` assertion could never have matched — `CI / required` has never passed on its own terms. This is the last red check on `main`. ## Which side is wrong? Nothing in the repository actually requires 0.7.0: - `abi.ipkg` declares **no version constraint** — it depends only on `base`. - The `idris2 0.7.0` line in `.tool-versions` is **commented out**, so it pins nothing. - The only 0.7.0 references were the workflow asserts and their comments. So "0.7.0" was stale documentation that drifted from the digest. The **immutable digest is the authority**, and the version notes are brought into step with it rather than the reverse. The typecheck now actually runs against the toolchain that is genuinely installed. Also fixes the identical brittle assert in **`release.yml`**, which piped `idris2 --version` into `grep -Fx` under `pipefail` exactly as `ci.yml` did — it would have failed the same way, silently, on the next release. ## If 0.7.0 was intended Then the fix is the other direction: re-pin the container to a 0.7.0 image digest. Say so and I will swap it — but the current pair is contradictory either way. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1 parent cbcee72 commit d29f89e

3 files changed

Lines changed: 12 additions & 5 deletions

File tree

.github/workflows/ci.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ jobs:
2020
runs-on: ubuntu-latest
2121
timeout-minutes: 20
2222
container:
23-
# Idris 2 0.7.0, pinned by immutable image digest.
23+
# Idris 2 0.8.0, pinned by immutable image digest.
24+
# The digest is the authority; keep the version note in step with it.
2425
image: ghcr.io/stefan-hoeck/idris2-pack@sha256:de9781906050dc44704ec6de0108c86f899ef17b2642932b79e00245d613b8ad
2526
steps:
2627
- name: Checkout
@@ -54,8 +55,8 @@ jobs:
5455
ver="$(idris2 --version)"
5556
echo "idris2 --version -> ${ver}"
5657
case "$ver" in
57-
*"0.7.0"*) ;;
58-
*) echo "::error::expected Idris 2 0.7.0, got: ${ver}"; exit 1 ;;
58+
*"0.8.0"*) ;;
59+
*) echo "::error::expected Idris 2 0.8.0, got: ${ver}"; exit 1 ;;
5960
esac
6061
idris2 --typecheck abi.ipkg
6162

.github/workflows/release.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,13 @@ jobs:
3434
shell: bash
3535
run: |
3636
set -euo pipefail
37-
idris2 --version | grep -Fx 'Idris 2, version 0.7.0'
37+
# Same fix as ci.yml: never assert through a pipe under pipefail.
38+
ver="$(idris2 --version)"
39+
echo "idris2 --version -> ${ver}"
40+
case "$ver" in
41+
*"0.8.0"*) ;;
42+
*) echo "::error::expected Idris 2 0.8.0, got: ${ver}"; exit 1 ;;
43+
esac
3844
idris2 --typecheck abi.ipkg
3945
(
4046
cd src/interface/ffi

.tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
# elixir 1.18.0
77
# erlang 27.2
88
# zig 0.14.0
9-
# idris2 0.7.0
9+
# idris2 0.8.0
1010
rust nightly

0 commit comments

Comments
 (0)