You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rust is pinned in rust-toolchain.toml and Zig is pinned to 0.16.0, but release builds install the moving nightly-new-compiler alias:
.github/workflows/release.yml:76-80
.github/workflows/release.yml:188-192
.github/workflows/release.yml:232-236
.github/workflows/release.yml:341-345
CI and Pages deployment do the same. Two runs for the same source commit and requested release version can therefore use different Roc compiler builds. This matters especially because the Rust glue is generated from compiler ABI definitions.
Suggested direction
Record one exact Roc nightly/compiler identifier in the repository and have CI, release builds, bundle tests, glue regeneration, and documentation generation consume it from a single source.
A deliberate compiler-update PR should:
update the pinned compiler;
regenerate/check ABI glue;
run the full cross-target test matrix;
make the compiler change visible in review.
The published release should record the compiler identifier in release metadata or provenance.
Acceptance criteria
A release rerun for the same commit installs the same Roc compiler build.
CI, release bundle construction, bundle testing, docs generation, and glue regeneration use the same pinned value.
Updating the compiler is a reviewed repository change.
Activity
lukewilliamboswell commentedon Jul 22, 2026
This should be coupled with a workflow to update the pinned release regularly.
thebrandonlucas commentedon Jul 25, 2026
@lukewilliamboswell I'd like to take this on this weekend if that's alright. I assume we'd want the same pinned nightly as in this comment for the CI?
Anton-4 commentedon Jul 27, 2026
Thanks @thebrandonlucas, I have assigned you :)
Same nightly sounds good.