{"collection":{"slug":"js-toolchain","name":"JavaScript Runtimes & Tooling"},"digest":{"id":"cwd_YvrFqS_3gVHutEXEyo-sf","weekStart":"2026-06-15","title":"pnpm 11.8 ships dry-run install while Turborepo polishes shutdown and Vitest rolls betas","intro":"pnpm 11.8 adds dry-run install previews and richer SBOM output; Turborepo releases three canary builds improving PTY process shutdown and symlink handling; Vitest ships a v4.1.9 bugfix backport alongside v5.0.0-beta.5 with breaking config changes.","body":"### Install with confidence: pnpm 11.8\n\nThe week's biggest story belongs to [pnpm 11.8](/release/rel_uHhyIWwhxPTglZIWdsRJP-pnpm-11-8), which introduces `pnpm install --dry-run` — a preview of what would be installed without actually touching `node_modules`. For teams reviewing dependency trees in CI or before upgrading a lockfile, this is the safety net that's been missing. Alongside it, pnpm now generates Node.js package maps and richer SBOM output, giving supply-chain auditors more to work with. The `pnpm view` command now defaults to the current package, saving a keystroke when inspecting its own metadata, and `pnpm run --no-bail` finally returns correct exit codes. The release also bundles several determinism fixes in install and update paths, quietly making monorepo workflows more predictable.\n\n### Turborepo refines the shutdown dance\n\nTurborepo shipped three canary releases this week, all circling the same hard problem: shutting down gracefully when PTY processes are involved. [v2.9.19-canary.6](/release/rel_uIMe2te9n2K6DSG1mvJJ7-turborepo-v2-9-19-canary-6-preserves-pnpm-config-and-speeds-up-create-turbo) kicked things off by preserving PNPM dependency-check configuration and peer-resolved prune entries during operations, plus a speed boost to `create-turbo` downloads and precomputation of unblocked JIT descendants. [v2.9.19-canary.7](/release/rel_5X1ZYSLLxnYamwa5i0_wt-turborepo-v2-9-19-canary-7-prevents-duplicate-pty-graceful-shutdown-signals) then prevented duplicate PTY graceful shutdown signals that could terminate processes incorrectly. [v2.9.19-canary.8](/release/rel_0U-mjw5rndGB2mVj9V4Pe-turborepo-v2-9-19-canary-8-gracefully-stops-nested-pty-processes) added true graceful stopping of nested PTY processes and restored the TUI force-shutdown behavior, while [v2.9.19-canary.9](/release/rel_-3g63Ui2TToSZw53UrkVF-turborepo-v2-9-19-canary-9-softens-force-shutdown-message-and-fixes-symlink) softened the force shutdown message and fixed symlink cycles being incorrectly cached. For anyone running Turborepo with large task graphs or custom scripts spawned as subprocesses, these changes mean fewer orphaned processes and less alarming error noise. The `allow_no_package_manager` config is now threaded to both daemon and watcher, and bun `patchedDependencies` survive the prune step — small touches that prevent real head-scratchers.\n\n### Vitest’s twin track: stable backports and v5 breaking changes\n\nVitest kept a dual rhythm this week. The [v4.1.9 patch](/release/rel_vyIvsZG4UmeGpqNAhXawF-v4-1-9) backports a fix for `importOriginal` when used with the optimizer and query imports, and resolves a race where browser sessions weren't waiting for orchestrator readiness — both critical for anyone running Vitest in browser mode. Meanwhile, [v5.0.0-beta.5](/release/rel_NDN1WfLMmRyfcWRbUzfXx-v5-0-0-beta-5) lands two breaking changes: config files are no longer looked up from ancestor directories (tightening the resolution scope), and the `@vitest/runner` package is inlined into the main bundle and no longer published separately. The runner inlining simplifies dependency trees and removes an entire import path to manage, at the cost of a one-time migration for anyone explicitly importing from that package.","releaseIds":["rel_uHhyIWwhxPTglZIWdsRJP","rel_uIMe2te9n2K6DSG1mvJJ7","rel_5X1ZYSLLxnYamwa5i0_wt","rel_0U-mjw5rndGB2mVj9V4Pe","rel_-3g63Ui2TToSZw53UrkVF","rel_vyIvsZG4UmeGpqNAhXawF","rel_NDN1WfLMmRyfcWRbUzfXx"],"releaseCount":7,"generatedAt":"2026-07-11T16:50:10.456Z","releases":[{"id":"rel_uHhyIWwhxPTglZIWdsRJP","title":"pnpm 11.8","path":"/release/rel_uHhyIWwhxPTglZIWdsRJP-pnpm-11-8","org":{"slug":"pnpm","name":"pnpm"},"importance":null},{"id":"rel_uIMe2te9n2K6DSG1mvJJ7","title":"Turborepo v2.9.19-canary.6 preserves PNPM config and speeds up create-turbo download","path":"/release/rel_uIMe2te9n2K6DSG1mvJJ7-pnpm-deps-check-and-peer-resolved-entries-preserved-jit-precomputed","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_5X1ZYSLLxnYamwa5i0_wt","title":"Turborepo v2.9.19-canary.7 prevents duplicate PTY graceful shutdown signals","path":"/release/rel_5X1ZYSLLxnYamwa5i0_wt-duplicate-pty-shutdown-signals-fixed","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_0U-mjw5rndGB2mVj9V4Pe","title":"Turborepo v2.9.19-canary.8 gracefully stops nested PTY processes","path":"/release/rel_0U-mjw5rndGB2mVj9V4Pe-nested-pty-processes-shut-down-gracefully-tui-force-shutdown-restored","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_-3g63Ui2TToSZw53UrkVF","title":"Turborepo v2.9.19-canary.9 softens force shutdown message and fixes symlink cycle cache","path":"/release/rel_-3g63Ui2TToSZw53UrkVF-force-shutdown-message-softened-symlink-cycles-ignored-in-cache","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_vyIvsZG4UmeGpqNAhXawF","title":"v4.1.9","path":"/release/rel_vyIvsZG4UmeGpqNAhXawF-v4-1-9","org":{"slug":"vitest","name":"Vitest"},"importance":null},{"id":"rel_NDN1WfLMmRyfcWRbUzfXx","title":"v5.0.0-beta.5","path":"/release/rel_NDN1WfLMmRyfcWRbUzfXx-v5-0-0-beta-5","org":{"slug":"vitest","name":"Vitest"},"importance":null}]}}