v2.10.4
ankitects/ankiv2.10.4Jul 6, 2026by github-actions[bot]
AI Summary
This release focuses on significant performance improvements and introduces comprehensive support for Rust/Cargo workspaces, including watch and prune capabilities.
Key Highlights
- Performance optimizations using mimalloc and concurrent parsing for lockfiles (yarn, pnpm).
- Native support for Cargo workspaces via discovery, execution, and toolchain abstraction.
- Toolchain provider abstraction for better extensibility.
- Improved dependency hashing and concurrent task collection.
Breaking Changes
- Renamed the `turborepo-repository` NAPI package to `@turbo/repository`.
New Features
- Cargo workspace support for `turbo watch` and `turbo prune`.
- Toolchain provider abstraction for build tools.
- Exposed experimental CI task configuration in `turbo query`.
- Hash git blobs with hardware-accelerated SHA-1.
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