v2.10.4
vercel/turborepov2.10.4Jul 6, 2026by github-actions[bot]
AI Summary
This release focuses on Cargo discovery and workspace awareness. It includes performance improvements for lockfile parsing and hashing, as well as fixes for Windows and macOS file watching.
Key Highlights
- Cargo crate discovery and execution
- Cargo workspace awareness for turbo watch and prune
- Performance improvements for Yarn and pnpm lockfile parsing
- Windows nextest retry fixes
- Use mimalloc as the global allocator
New Features
- Discover Cargo crates as packages
- Execute Cargo crate tasks via cargo
- Make turbo watch Cargo-aware
- Make turbo prune Cargo-aware
- Hash Cargo external dependencies per-crate
Full Release Notes
<!-- Release notes generated using configuration in .github/release.yml at v2.10.4 --> ## What's Changed ### Changelog * release(turborepo): 2.10.3 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13222 * ci: Retry Windows nextest aborts from transient 0xc0000142 spawn failures by @anthonyshew in https://github.com/vercel/turborepo/pull/13240 * perf: Use mimalloc as the global allocator by @anthonyshew in https://github.com/vercel/turborepo/pull/13237 * perf: Parse yarn v1 lockfiles in a single pass by @anthonyshew in https://github.com/vercel/turborepo/pull/13241 * ci: Fix cache outputs for Eve app by @anthonyshew in https://github.com/vercel/turborepo/pull/13243 * perf: Stop materializing spans for the disabled daemon log layer by @anthonyshew in https://github.com/vercel/turborepo/pull/13244 * fix: Keep ancestor-scoped bun dependencies resolvable after prune renames by @anthonyshew in https://github.com/vercel/turborepo/pull/13236 * perf: Overlap external dependency hashing with package file hashing by @anthonyshew in https://github.com/vercel/turborepo/pull/13234 * perf: Build tracked repo index concurrently with package graph by @anthonyshew in https://github.com/vercel/turborepo/pull/13232 * perf: Release tokio runtime at exit so background DNS lookups never stall the user by @anthonyshew in https://github.com/vercel/turborepo/pull/13231 * perf: Overhaul pnpm lockfile parsing and dependency closure computation by @anthonyshew in https://github.com/vercel/turborepo/pull/13228 * feat: Add futureFlags.experimentalCargoWorkspaces flag (no-op) by @anthonyshew in https://github.com/vercel/turborepo/pull/13227 * feat: Introduce toolchain provider abstraction by @anthonyshew in https://github.com/vercel/turborepo/pull/13235 * perf: Parse Berry lockfiles in a single pass by @anthonyshew in https://github.com/vercel/turborepo/pull/13242 * fix: Apply input exclusion globs to the filesystem walk by @anthonyshew in https://github.com/vercel/turborepo/pull/13224 * fix: Stop root-directory packages from claiming every file in change mapping by @anthonyshew in https://github.com/vercel/turborepo/pull/13225 * chore: Rename turborepo-repository napi package to @turbo/repository by @anthonyshew in https://github.com/vercel/turborepo/pull/13226 * perf: Hash git blobs with hardware-accelerated SHA-1 by @anthonyshew in https://github.com/vercel/turborepo/pull/13245 * release(turborepo): 2.10.4-canary.1 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13247 * feat: Discover Cargo crates as packages by @anthonyshew in https://github.com/vercel/turborepo/pull/13248 * perf: Reuse per-package external dependency hashes in run summaries by @anthonyshew in https://github.com/vercel/turborepo/pull/13249 * perf: Stat workspace turbo.json files concurrently during discovery by @anthonyshew in https://github.com/vercel/turborepo/pull/13251 * chore: Add tracing spans to workspace discovery and globwalk phases by @anthonyshew in https://github.com/vercel/turborepo/pull/13252 * fix: Avoid non-reentrant libc calls in concurrent shutdown process scans by @anthonyshew in https://github.com/vercel/turborepo/pull/13256 * perf: Memoize resolved task definitions during engine construction by @anthonyshew in https://github.com/vercel/turborepo/pull/13257 * perf: Compute transitive closures and external dependency hashes concurrently with run setup by @anthonyshew in https://github.com/vercel/turborepo/pull/13250 * perf: Probe microfrontends configs in parallel by @anthonyshew in https://github.com/vercel/turborepo/pull/13262 * feat: Execute Cargo crate tasks via cargo by @anthonyshew in https://github.com/vercel/turborepo/pull/13261 * perf: Pre-size engine task collections by @anthonyshew in https://github.com/vercel/turborepo/pull/13265 * feat: Expose resolved experimentalCI task configuration in `turbo query` by @anthonyshew in https://github.com/vercel/turborepo/pull/13264 * feat: Derive input and output globs for Cargo tasks by @anthonyshew in https://github.com/vercel/turborepo/pull/13263 * perf: Parse large pnpm lockfile sections in parallel by @anthonyshew in https://github.com/vercel/turborepo/pull/13266 * feat: Hash Cargo external dependencies per-crate by @anthonyshew in https://github.com/vercel/turborepo/pull/13267 * ci: Install pnpm 10 in musl containers for Library Release by @anthonyshew in https://github.com/vercel/turborepo/pull/13269 * ci: Force pnpm overwrite in Library Release musl containers by @anthonyshew in https://github.com/vercel/turborepo/pull/13270 * perf: Defer the untracked-scan barrier to first file-hash use by @anthonyshew in https://github.com/vercel/turborepo/pull/13268 * ci: Fetch API-created commit before updating local ref by @anthonyshew in https://github.com/vercel/turborepo/pull/13271 * release(library): 0.0.1-canary.22 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13272 * perf: Remove lock and dispatch overhead from task hash precomputation by @anthonyshew in https://github.com/vercel/turborepo/pull/13273 * fix: Fall back to lockfile detection in @turbo/repository when package manager is undeclared by @anthonyshew in https://github.com/vercel/turborepo/pull/13275 * test: Add end-to-end coverage for Cargo workspaces by @anthonyshew in https://github.com/vercel/turborepo/pull/13274 * release(library): 0.0.1-canary.23 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13276 * release(turborepo): 2.10.4-canary.2 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13278 * fix: Collapse nested package-manager fallback conditional by @anthonyshew in https://github.com/vercel/turborepo/pull/13279 * feat: Make turbo watch Cargo-aware by @anthonyshew in https://github.com/vercel/turborepo/pull/13280 * perf: Skip dependency-closure assembly for toolchains that derive nothing by @anthonyshew in https://github.com/vercel/turborepo/pull/13277 * feat: Make turbo prune Cargo-aware by @anthonyshew in https://github.com/vercel/turborepo/pull/13281 * fix: Raise the open-file soft limit at startup by @anthonyshew in https://github.com/vercel/turborepo/pull/13282 * fix: Stop flagging relative imports that resolve into node_modules in boundaries by @anthonyshew in https://github.com/vercel/turborepo/pull/13284 **Full Changelog**: https://github.com/vercel/turborepo/compare/v2.10.3...v2.10.4