[codex] Add mise and shared Rust toolchain setup - #310
Merged
Merged
Conversation
anp
marked this pull request as ready for review
July 1, 2026 06:27
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This makes mise the canonical project setup entrypoint for local development and CI. The PR adds
.mise/config.tomlwith the Rust toolchains, Rust components, wasm target, Node version, and project CLI tools that the current build/test/demo workflows rely on.It also updates CI to use that mise configuration through a shared setup action. The action keeps the unavoidable host package list intentionally small, installs mise-managed tools once per job, and configures rustup state so mise's cached Rust installs include requested components like
clippy,rustfmt,llvm-tools-preview, andwasm32-unknown-unknown.Finally, the workflow now has a terminal
blocking CIjob. That job always runs after the real CI jobs and fails if any required job fails, is cancelled, or is skipped, giving branch protection a single stable check name to require.Intent
The goal is to make project setup reproducible without spreading toolchain pins and installer details across docs, CI jobs, and ad hoc local commands. Developers should be able to run
mise installand get the same Rust/Node/tooling baseline that CI uses.For CI specifically, the intent is to keep the workflow easy to delete or simplify later. The shared setup action centralizes today's non-Bazel setup, keeps system dependencies explicit and minimal, and leaves the individual jobs focused on the work they actually perform.
Notes
.mise/config.tomlinstead ofrust-toolchain.toml.nightly-2021-10-30; this PR is about restoring the old toolchain under mise, not uprevving it.cargo-watch,wasm-bindgen-cli, Cypress, and Netlify CLI are installed through mise because existing commands and CI jobs already depend on them.libssl-devas a host dependency because the old toolchain/tooling stack needs OpenSSL headers during setup.