Skip to content

Fix/toolchain version asserts - #45

Merged
hyperpolymath merged 4 commits into
mainfrom
fix/toolchain-version-asserts
Jul 29, 2026
Merged

Fix/toolchain version asserts#45
hyperpolymath merged 4 commits into
mainfrom
fix/toolchain-version-asserts

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Changes

RSR Quality Checklist

Required

  • Tests pass (just test or equivalent)
  • Code is formatted (just fmt or equivalent)
  • Linter is clean (no new warnings or errors)
  • No banned language patterns (no TypeScript, no npm/bun, no Go/Python)
  • No unsafe blocks without // SAFETY: comments
  • No banned functions (believe_me, unsafeCoerce, Obj.magic, Admitted, sorry)
  • SPDX license headers present on all new/modified source files
  • No secrets, credentials, or .env files included

As Applicable

  • .machine_readable/6a2/STATE.a2ml updated (if project state changed)
  • .machine_readable/6a2/ECOSYSTEM.a2ml updated (if integrations changed)
  • .machine_readable/6a2/META.a2ml updated (if architectural decisions changed)
  • Documentation updated for user-facing changes
  • TOPOLOGY.md updated (if architecture changed)
  • CHANGELOG or release notes updated
  • New dependencies reviewed for license compatibility (MPL-2.0 / MPL-2.0)
  • ABI/FFI changes validated (src/interface/abi/ and src/interface/ffi/ consistent)

Testing

Screenshots

hyperpolymath and others added 3 commits July 27, 2026 14:41
`idris2 --version | grep -Fx 'Idris 2, version 0.7.0'` failed the job with no
output whatsoever: the pipeline swallowed the version, grep matched nothing,
and `set -o pipefail` ended the step before anything was printed. The log gave
no clue what version was actually installed.

Capture the version, echo it, then assert. The Idris2 check now matches on the
release ("0.7.0") rather than the whole string, since the digest-pinned
idris2-pack image reports a build suffix. The Zig check keeps its exact
equality but now reports what it found when it fails.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
With the assert made diagnosable, the actual 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 and this job has never passed on its own terms.

Nothing in the repository actually requires 0.7.0: abi.ipkg declares no version
constraint (it depends only on `base`), and 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 — stale documentation that drifted
from the digest.

The immutable digest is the authority, so the version notes are brought into
step with it rather than the other way round. The typecheck now actually runs.

Also fixes the identical brittle assert in release.yml, which piped
`idris2 --version` into `grep -Fx` under pipefail exactly as ci.yml did.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@hyperpolymath
hyperpolymath enabled auto-merge (squash) July 29, 2026 22:40
@hyperpolymath
hyperpolymath disabled auto-merge July 29, 2026 23:14
@hyperpolymath
hyperpolymath merged commit bbb97bd into main Jul 29, 2026
16 checks passed
@hyperpolymath
hyperpolymath deleted the fix/toolchain-version-asserts branch July 29, 2026 23:15
@sonarqubecloud

Copy link
Copy Markdown

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