From b2abc14754276b5f23f86b8b9cc57bff544e6811 Mon Sep 17 00:00:00 2001 From: Andrey Vasilevsky Date: Mon, 5 Oct 2026 19:06:55 -0700 Subject: [PATCH 1/3] build: pin the Rust toolchain to 1.94.1 Release engines are built on four hosts plus a container that installs its own Rust. Unpinned, they ran three different rustc versions. A rust-toolchain.toml makes rustup on every host, and in the linux-arm64 container, use the same compiler. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_017rVbt7rENTwXkdHt3Bpgb5 --- rust-toolchain.toml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 rust-toolchain.toml diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..ef7e52b --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,8 @@ +# One compiler for every release build. Each platform's engine is built on a +# different host (and linux-arm64 in a container that installs Rust itself); +# without a pin they drifted onto three different rustc versions, so one release +# shipped binaries the same source compiled differently. +[toolchain] +channel = "1.94.1" +components = ["rustfmt", "clippy"] +profile = "minimal" From 6aaa463eaeafb0076d071a29319f9210215575ee Mon Sep 17 00:00:00 2001 From: Andrey Vasilevsky Date: Mon, 5 Oct 2026 19:08:00 -0700 Subject: [PATCH 2/3] no-mistakes(review): Add darwin-x64 target to pin and drop stable bootstrap --- rust-toolchain.toml | 2 ++ scripts/build-linux-arm64.sh | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/rust-toolchain.toml b/rust-toolchain.toml index ef7e52b..7eaaa41 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -6,3 +6,5 @@ channel = "1.94.1" components = ["rustfmt", "clippy"] profile = "minimal" +# darwin-x64 is cross-built on the arm64 Mac. +targets = ["x86_64-apple-darwin"] diff --git a/scripts/build-linux-arm64.sh b/scripts/build-linux-arm64.sh index a66e395..6b85005 100755 --- a/scripts/build-linux-arm64.sh +++ b/scripts/build-linux-arm64.sh @@ -139,7 +139,7 @@ apt_install gcc-11 g++-11 clang libclang-dev cmake pkg-config libssl-dev make bi if ! command -v cargo >/dev/null 2>&1; then curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \ - | sh -s -- -y --default-toolchain stable --profile minimal >/dev/null || exit 1 + | sh -s -- -y --default-toolchain none --profile minimal >/dev/null || exit 1 fi . "$HOME/.cargo/env" @@ -162,6 +162,7 @@ restore_ownership() { trap restore_ownership EXIT cd /src +rustc --version || { echo "RUST TOOLCHAIN INSTALL FAILED"; exit 1; } export CARGO_TARGET_DIR=/target export CC=gcc-11 CXX=g++-11 export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=gcc-11 From a8c6152db0a6747e121cbbd2ccfdbd4ee6c51921 Mon Sep 17 00:00:00 2001 From: Andrey Vasilevsky Date: Mon, 5 Oct 2026 19:19:28 -0700 Subject: [PATCH 3/3] no-mistakes(document): Point build-from-source docs at pinned Rust toolchain --- README.md | 2 +- vscode/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a402813..4150b3e 100644 --- a/README.md +++ b/README.md @@ -475,7 +475,7 @@ cd vscode && npm install && npm run esbuild # VS Code extension npx @vscode/vsce package # VSIX ``` -Requires Rust stable, Node.js 18+, VS Code 1.90+. +Requires rustup (it installs the Rust version pinned in `rust-toolchain.toml`), Node.js 18+, VS Code 1.90+. --- diff --git a/vscode/README.md b/vscode/README.md index c88bb82..a960c3a 100644 --- a/vscode/README.md +++ b/vscode/README.md @@ -145,7 +145,7 @@ cd vscode && npm install && npm run esbuild # VS Code extension npx @vscode/vsce package # VSIX ``` -Requires Rust stable, Node.js 18+, VS Code 1.90+. +Requires rustup (it installs the Rust version pinned in `rust-toolchain.toml`), Node.js 18+, VS Code 1.90+. ---