From f1804452da961fc6aab0ffe8402912bd4b7de456 Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Mon, 5 Oct 2026 14:15:22 +0200 Subject: [PATCH 1/9] upgrade rust --- .devcontainer/rust/devcontainer-feature.json | 2 +- rust-toolchain.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.devcontainer/rust/devcontainer-feature.json b/.devcontainer/rust/devcontainer-feature.json index f7098e7c26ba..bd6f9988dfcb 100644 --- a/.devcontainer/rust/devcontainer-feature.json +++ b/.devcontainer/rust/devcontainer-feature.json @@ -5,7 +5,7 @@ "dependsOn": { "ghcr.io/devcontainers/features/rust:1": { // this should match the `rust-toolchain.toml` - "version": "nightly-2026-08-20", + "version": "nightly-2026-10-04", "profile": "minimal", "components": "rustfmt,clippy,rust-analyzer,miri" } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 72873e38c702..6d5b9d9dcbd3 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,6 +1,6 @@ # if you update this, also update `.devcontainer/rust/devcontainer-feature.json` # if you move the file, also update any turbo.json inputs that references it. [toolchain] -channel = "nightly-2026-08-20" +channel = "nightly-2026-10-04" components = ["rustfmt", "clippy", "rust-analyzer", "miri"] profile = "minimal" From 13d137cc32eb840211462e4c23ceab9f5a5bf993 Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Mon, 5 Oct 2026 14:16:09 +0200 Subject: [PATCH 2/9] remove unused workspace deps --- Cargo.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c71605879acc..32f3579f56a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -271,7 +271,6 @@ crossbeam-utils = "0.8" dashmap = "7.0.0-rc2" data-encoding = "2.3.3" dhat = { version = "0.3.2" } -dunce = "1.0.3" either = "1.15.0" erased-serde = "0.4.5" fixedbitset = "0.5.7" @@ -333,7 +332,6 @@ roaring = "0.11.4" rstest = "0.16.0" rustc-hash = "2.1.1" scattered-collect = "0.10.0" -semver = "1.0.16" serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0.149" serde_path_to_error = "0.1.20" From 94c9102ce10575c9cce0029e0012824a815694ff Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Mon, 5 Oct 2026 14:17:36 +0200 Subject: [PATCH 3/9] add missing lint declarations --- turbopack/crates/turbo-tasks-malloc/Cargo.toml | 3 +++ turbopack/crates/turbopack-trace-server/Cargo.toml | 3 +++ turbopack/crates/turbopack-trace-utils/Cargo.toml | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/turbopack/crates/turbo-tasks-malloc/Cargo.toml b/turbopack/crates/turbo-tasks-malloc/Cargo.toml index 5c5b208854c0..399c0a2a5215 100644 --- a/turbopack/crates/turbo-tasks-malloc/Cargo.toml +++ b/turbopack/crates/turbo-tasks-malloc/Cargo.toml @@ -13,6 +13,9 @@ bench = false name = "allocation" harness = false +[lints] +workspace = true + [dependencies] [dev-dependencies] diff --git a/turbopack/crates/turbopack-trace-server/Cargo.toml b/turbopack/crates/turbopack-trace-server/Cargo.toml index bd61cce04065..492a3f99eda3 100644 --- a/turbopack/crates/turbopack-trace-server/Cargo.toml +++ b/turbopack/crates/turbopack-trace-server/Cargo.toml @@ -10,6 +10,9 @@ autobenches = false default = ["custom_allocator"] custom_allocator = ["turbo-tasks-malloc/custom_allocator"] +[lints] +workspace = true + [[bin]] name = "turbo-trace-server" path = "src/main.rs" diff --git a/turbopack/crates/turbopack-trace-utils/Cargo.toml b/turbopack/crates/turbopack-trace-utils/Cargo.toml index 07fe1f79a591..9850c8e496c3 100644 --- a/turbopack/crates/turbopack-trace-utils/Cargo.toml +++ b/turbopack/crates/turbopack-trace-utils/Cargo.toml @@ -9,7 +9,8 @@ autobenches = false [lib] bench = false -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[lints] +workspace = true [dependencies] anyhow = { workspace = true } From 5bfc936dadcf8bf236b7bb37edcbd4310f0cfeb5 Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Mon, 5 Oct 2026 14:22:43 +0200 Subject: [PATCH 4/9] exclusive_wrapper has been stabilized --- turbopack/crates/turbo-tasks/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/turbopack/crates/turbo-tasks/src/lib.rs b/turbopack/crates/turbo-tasks/src/lib.rs index c93bb9d35dab..891bb24c5e94 100644 --- a/turbopack/crates/turbo-tasks/src/lib.rs +++ b/turbopack/crates/turbo-tasks/src/lib.rs @@ -6,7 +6,6 @@ #![feature(arbitrary_self_types)] #![feature(arbitrary_self_types_pointers)] #![feature(ptr_metadata)] -#![feature(exclusive_wrapper)] #![feature(sync_unsafe_cell)] #![feature(async_fn_traits)] #![feature(impl_trait_in_assoc_type)] From ad4efc49ad28c2449b064d62247b82342e73e044 Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Tue, 6 Oct 2026 11:55:43 +0200 Subject: [PATCH 5/9] upgrade to fix miri --- .devcontainer/rust/devcontainer-feature.json | 2 +- rust-toolchain.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.devcontainer/rust/devcontainer-feature.json b/.devcontainer/rust/devcontainer-feature.json index bd6f9988dfcb..ebdb90259ace 100644 --- a/.devcontainer/rust/devcontainer-feature.json +++ b/.devcontainer/rust/devcontainer-feature.json @@ -5,7 +5,7 @@ "dependsOn": { "ghcr.io/devcontainers/features/rust:1": { // this should match the `rust-toolchain.toml` - "version": "nightly-2026-10-04", + "version": "nightly-2026-10-06", "profile": "minimal", "components": "rustfmt,clippy,rust-analyzer,miri" } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 6d5b9d9dcbd3..2050c9ffe387 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,6 +1,6 @@ # if you update this, also update `.devcontainer/rust/devcontainer-feature.json` # if you move the file, also update any turbo.json inputs that references it. [toolchain] -channel = "nightly-2026-10-04" +channel = "nightly-2026-10-06" components = ["rustfmt", "clippy", "rust-analyzer", "miri"] profile = "minimal" From 2dd5d9a1f2e724b265f31560a1a8077dfb1641e3 Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Tue, 6 Oct 2026 12:00:43 +0200 Subject: [PATCH 6/9] upgrade napi-build to fix "duplicate symbol: _initialize" --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f69c68b1c990..d26c298a0f83 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4068,9 +4068,9 @@ dependencies = [ [[package]] name = "napi-build" -version = "2.4.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60fdf9b392c50e7c4170fa633bd909490ed7835cea4c046776d1a4dd8d2ae0ab" +checksum = "b899b545d3aa6dca985939059f258c5488d34e4ecf39c274e20009748f4b846d" [[package]] name = "napi-derive" diff --git a/Cargo.toml b/Cargo.toml index 32f3579f56a9..8015237d5aab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -307,7 +307,7 @@ napi = { version = "3.10.0", default-features = false, features = [ "napi5", ] } napi-derive = "3.5.8" -napi-build = "2.3.2" +napi-build = "2.6.0" nohash-hasher = "0.2.0" notify = "9.0.0-rc.5" owo-colors = "4.2.2" From 68e31616cd926c44145d079dc240e524ce8b8271 Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Tue, 6 Oct 2026 12:02:56 +0200 Subject: [PATCH 7/9] silence warning --- Cargo.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 8015237d5aab..f45e913b7bb2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,6 +31,10 @@ unexpected_cfgs = { level = "warn", check-cfg = [ 'cfg(codspeed)', ] } +[workspace.lints.cargo] +# These are generally useful, but there are a lot of false positives when running commands scoped to individual workspace members. +unused_workspace_dependencies = "allow" + [profile.dev] # https://kobzol.github.io/rust/rustc/2025/05/20/disable-debuginfo-to-improve-rust-compile-times.html debug = "line-tables-only" From f1d46398eb9a7d732c6f79f28b5709b81f0d8fff Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Tue, 6 Oct 2026 12:03:02 +0200 Subject: [PATCH 8/9] update snapshot --- .../tests/function/fail_operation_method_self_type.stderr | 1 - 1 file changed, 1 deletion(-) diff --git a/turbopack/crates/turbo-tasks-macros-tests/tests/function/fail_operation_method_self_type.stderr b/turbopack/crates/turbo-tasks-macros-tests/tests/function/fail_operation_method_self_type.stderr index da13098cd5fb..21117d7e87cb 100644 --- a/turbopack/crates/turbo-tasks-macros-tests/tests/function/fail_operation_method_self_type.stderr +++ b/turbopack/crates/turbo-tasks-macros-tests/tests/function/fail_operation_method_self_type.stderr @@ -24,7 +24,6 @@ note: required by a bound in `turbo_tasks::macro_helpers::into_task_fn_with_this --> $WORKSPACE/turbopack/crates/turbo-tasks/src/task/function.rs | | pub const fn into_task_fn_with_this< - | ---------------------- required by a bound in this function ... | F: TaskFnInputFunctionWithThis, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `into_task_fn_with_this` From 258d888ebe6b7d9b9b8ef08de1b6c581f3d69bec Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Tue, 6 Oct 2026 12:13:30 +0200 Subject: [PATCH 9/9] skip sync on miri --- turbopack/crates/turbo-persistence/src/db.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/turbopack/crates/turbo-persistence/src/db.rs b/turbopack/crates/turbo-persistence/src/db.rs index ed81fbc28865..de5253d1930a 100644 --- a/turbopack/crates/turbo-persistence/src/db.rs +++ b/turbopack/crates/turbo-persistence/src/db.rs @@ -247,7 +247,9 @@ fn commit_current(path: &Path, seq: u32) -> Result<()> { // Skipped on Windows: `sync_data` on a directory handle fails with ERROR_ACCESS_DENIED (the // handle `File::open` returns for a directory has no write access).Apparently metadata changes // are always atomic on windows so this is simply unneeded. - #[cfg(not(windows))] + // + // Miri supports opening directories, but not syncing directory descriptors. + #[cfg(not(any(windows, miri)))] File::open(path) .and_then(|dir| dir.sync_data()) .context("Failed to sync database directory after updating CURRENT")?;