diff --git a/.devcontainer/rust/devcontainer-feature.json b/.devcontainer/rust/devcontainer-feature.json index f7098e7c26ba..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-08-20", + "version": "nightly-2026-10-06", "profile": "minimal", "components": "rustfmt,clippy,rust-analyzer,miri" } 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 c71605879acc..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" @@ -271,7 +275,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" @@ -308,7 +311,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" @@ -333,7 +336,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" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 72873e38c702..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-08-20" +channel = "nightly-2026-10-06" components = ["rustfmt", "clippy", "rust-analyzer", "miri"] profile = "minimal" 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")?; 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` 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/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)] 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 }