Context
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.
- Release metadata records the compiler identifier.
- Documentation explains how to update the pin.
Context
Rust is pinned in
rust-toolchain.tomland Zig is pinned to0.16.0, but release builds install the movingnightly-new-compileralias:.github/workflows/release.yml:76-80.github/workflows/release.yml:188-192.github/workflows/release.yml:232-236.github/workflows/release.yml:341-345CI 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:
The published release should record the compiler identifier in release metadata or provenance.
Acceptance criteria