releases.sh

BetaWeekly digests are a beta — we're trying something new. Feedback welcome.

Pruning speeds up while vitest rethinks its config

August 10–16, 2026

VercelVitest
Vercel, Vitest

Turborepo's 2.10.x line landed several performance and correctness fixes across pruning, hashing, and lockfile support, while Vitest shipped its first v5 release candidate with breaking changes to how test configurations work.

A faster, more correct Turborepo

The biggest story of the week is Turborepo's quiet but steady march through its 2.10.x releases, all converging on two themes: speed and fidelity. The headline performance win is in pruning, where Turborepo now walks the repository a single time instead of repeatedly traversing it. That change landed in canary.2 and made it into the stable v2.10.10 release alongside nub.lock support, so anyone running the newest stable build gets the faster pruning immediately.

The correctness fixes are arguably more interesting for monorepo teams with unusual setups. The canary.1 release addressed a cluster of Bun prune issues: overrides objects, trustedDependencies, workspace bins, and git integrity are now preserved, and lockfileVersion 3 is accepted. That's a meaningful unblock for teams on newer Bun versions who found their pruned output subtly broken. The same release tightened gitignore handling so manual hashing respects nested parent gitignore patterns — a fix that also appeared in canary.3, which added pytest task discovery and upgraded js-yaml to patch the GHSA-5p4m-2wfm-xmqj vulnerability.

Two other performance nits round out the week. Canary.2 avoided repeated strict entrypoint traversal, and the latest canary fixed generator config bundle isolation so concurrent runs don't clobber each other — plus it respects gitignore in projects without git metadata, a nice edge-case cleanup. Canary.3 also added caching for native uv tool tasks, which pairs well with the existing Python task support.

Vitest 5 takes shape

The week's only major non-Turborepo news is vitest v5.0.0-rc.1, and it's a big one for anyone who maintains a complex test setup. The most likely breaking change to trip people up: tests now fail when an asynchronous assertion isn't awaited. That's a strictness improvement that will catch real bugs, but expect some CI noise as existing tests surface latent issues.

The configuration changes are the deeper story, though. Inline projects now extend the root config by default, which is a sensible default shift but could change behavior for projects that relied on isolation. Nested projects are now supported, and the Vite server is shared between inline projects — both moves toward a more composable configuration model. There's also Temporal mocking without fake timers, a > separator in -t filtering (so watch out if you had patterns with >), and class mock prototype methods are now preserved on instances.

The through-line for vitest 5 is consolidation: fewer surprising defaults, more shared infrastructure, and stricter failure modes. Teams on v4 should read the breaking changes carefully before upgrading, but the direction is clearly toward a more predictable test runner.

The week in one sentence

Turborepo spent the week making pruning faster and more faithful to your lockfile and gitignore, while Vitest laid out a breaking but more principled foundation for v5.

AI-generated digests may contain mistakes.
Releases covered8