{"collection":{"slug":"js-toolchain","name":"JavaScript Runtimes & Tooling"},"digest":{"id":"cwd_D2bEx7Ix3nUPAm5M65K-C","weekStart":"2026-08-31","title":"Vitest 5 lands as Bun ships a rapid-fire pair of patch releases","intro":"Vitest 5.0.0 arrived with a performance-focused rewrite and long-awaited fixes, while Bun issued two point releases within a week to keep its runtime moving. The testing framework's major version sets a new baseline for developer experience, even as its release candidate showed the seams of the transition.","body":"### Vitest 5 is finally here\n\nThe headline this week is unambiguously [Vitest 5.0.0](/release/rel_k6yGwn1x4sYT4X0wDKq4x-v5-0-0), the testing framework's first major version in years. The release is pitched squarely at performance, and it delivers on that promise with a sizable list of internal improvements that should make large test suites noticeably faster to start and run. The team also used the major bump to clean up long-standing issues, which is exactly what you'd hope for from a 5.0 — a chance to break things deliberately rather than bolt on more options.\n\nThe most user-visible change arrives via a breaking replacement: `loupe.inspect` is gone, swapped for the more widely known `pretty-format`. If you've been reaching for `loupe.inspect` to pretty-print values in test output, you'll need to migrate those call sites to the new formatter. It's a small change in surface area, but a meaningful one for consistency across the toolchain.\n\nWhat's arguably more interesting is the path here. The [release candidate that shipped early in the week](/release/rel_pH2VMR4FMjd_Wbw1lB99--vitest-v5-0-0-rc-4-parses-files-statically-in-vitest-list) already demonstrated the direction: `vitest list` now parses test files statically by default, a change that eliminates the need to actually execute files just to see what tests exist. That's a massive speedup for IDE integrations and quick project reconnaissance, and it's now the standard behavior in the stable release. The RC also promoted `clearCache` out of the experimental bucket and added a handy link to open Playwright traces directly from the UI, both of which carry over into 5.0.0.\n\nThe two releases bookend the work nicely — the RC shows the team tightening the final details, and the stable release confirms the whole package hangs together.\n\n### Bun keeps the cadence\n\nWhile Vitest claimed the spotlight, [Bun v1.4.2](/release/rel_EWZZ-P-I9URxZtINcRraP-bun-v1-4-2) and [Bun v1.4.1](/release/rel_EqIJdMiDJeG9t6BAk7Aoh-bun-v1-4-1) arrived back-to-back on consecutive days, a rhythm that's become typical for the project. The patch releases are light on headline features — you won't find a new flag or a rewritten subsystem here — but they matter in aggregate. Security fixes, edge-case bug squashes, and platform-specific stability improvements (Windows often gets special attention) are exactly what a runtime needs between feature releases.\n\nThe short contributor lists (3 for 1.4.2, 7 for 1.4.1) suggest these were focused stabilization passes rather than sprawling changes. For teams already on Bun, the upgrade path is a single `bun upgrade` command, and the low churn means it's a low-risk update. For anyone watching from the sidelines, the rapid-fire cadence itself is the signal: the project's release train is running smoothly, and the maintainers are comfortable shipping small, safe increments.\n\n### The week in context\n\nThe contrast between the two projects is worth noting. Vitest's 5.0 is a milestone — a deliberate, breaking moment that resets expectations for what a modern test runner should feel like. Bun's patches are the opposite: routine, almost invisible maintenance that keeps the runtime healthy. Both are necessary, and both are happening at a healthy clip.\n\nIf you're planning an upgrade, Vitest 5 deserves a dedicated migration pass given the breaking changes, but the static parsing alone makes it worth the effort. For Bun, thepatches are a no-brainer install. Neither announcement changes the trajectory of the ecosystem overnight, but together they show a toolchain that's actively getting faster and more reliable, week after week.","releaseIds":["rel_k6yGwn1x4sYT4X0wDKq4x","rel_pH2VMR4FMjd_Wbw1lB99-","rel_EWZZ-P-I9URxZtINcRraP","rel_EqIJdMiDJeG9t6BAk7Aoh"],"releaseCount":4,"generatedAt":"2026-09-07T06:20:41.022Z","releases":[{"id":"rel_k6yGwn1x4sYT4X0wDKq4x","title":"v5.0.0","path":"/release/rel_k6yGwn1x4sYT4X0wDKq4x-v5-0-0","org":{"slug":"vitest","name":"Vitest"},"importance":null},{"id":"rel_pH2VMR4FMjd_Wbw1lB99-","title":"Vitest v5.0.0-rc.4 parses files statically in vitest list","path":"/release/rel_pH2VMR4FMjd_Wbw1lB99--vitest-list-now-parses-files-statically","org":{"slug":"vitest","name":"Vitest"},"importance":3},{"id":"rel_EWZZ-P-I9URxZtINcRraP","title":"Bun v1.4.2","path":"/release/rel_EWZZ-P-I9URxZtINcRraP-bun-v1-4-2","org":{"slug":"bun","name":"Bun"},"importance":null},{"id":"rel_EqIJdMiDJeG9t6BAk7Aoh","title":"Bun v1.4.1","path":"/release/rel_EqIJdMiDJeG9t6BAk7Aoh-bun-v1-4-1","org":{"slug":"bun","name":"Bun"},"importance":null}]}}