{"collection":{"slug":"js-toolchain","name":"JavaScript Runtimes & Tooling"},"digest":{"id":"cwd_R9N8gh08__DVPb3YE8Bmc","weekStart":"2026-09-07","title":"pnpm breaks the npm-only barrier while Turborepo sweats performance","intro":"pnpm 12.4 lets a single workspace install Cargo crates and Python packages alongside npm dependencies, with a pnpm pipeline command for CI-shaped task runs; Turborepo spent the week grinding through a dozen performance and correctness canaries.","body":"### One workspace, three ecosystems\n\nThe week's structural news comes from pnpm, which has spent the past year blurring the line between \"npm-compatible package manager\" and \"build orchestrator for whatever your repo actually contains.\" [pnpm 12.4](/release/rel_RTqiEr5Z6X2JDvrRQtUkR-pnpm-12-4) puts crates and Python packages next to npm packages in the same workspace, adds `pnpm pipeline` to execute a workspace's tasks the way a CI job would, and ships binaries for six additional platforms. The accompanying prv 0.1.0-alpha.11 release serves Cargo, Python, and container registries beside npm, publishes across all of them in a single transaction, and signs users in via OIDC.\n\nFor anyone maintaining a monorepo that already mixes JavaScript with a Rust crate or a Python service, this is the difference between one lockfile and a wrapping script kept alive by folklore. The transactional multi-registry publish and OIDC auth matter for supply-chain hygiene too — provenance flows through the same path regardless of ecosystem. `pnpm pipeline` is the sleeper: it means the task runner stops being a CI-only convention and becomes something you can reproduce locally.\n\n### Turborepo's quiet grind\n\nMeanwhile, the Turborepo canaries kept landing. [v2.10.13-canary.3](/release/rel_s5yxsV0twf2jspPacbTeS-turborepo-v2-10-13-canary-3-performance-optimizations-across-resolver-cache-and) is the most substantive of the batch, reusing resolver inference during file tracing, trimming memory during remote-cache transfers, caching LSP task indexes, and reusing the package graph across partial watch reruns — a set of changes aimed squarely at the large-repo experience where every rerun costs seconds. [canary.2](/release/rel_O4TPDRY94ARe47wBu4LUw-turborepo-v2-10-13-canary-2-adds-cargo-root-package-support) continues the multi-language push with Cargo root package support and Cargo tasks kept runnable without compiler identity, plus a `skipPackageGraph` option for `@turbo/repository` consumers, streamed task output bounded in memory, a CLI parser migration to usage-rs, and a tar bump for CVE-2026-73566.\n\nThe rest of the week is correctness churn, worth noting mainly as a pattern: [canary.4](/release/rel_fq5JP1rGW0GDbfxhVoRkc-turborepo-v2-10-13-canary-4-restores-leading-flags-for-implicit-run-commands) restored leading flags dropped by implicit run commands and folded `experimentalCI` into task hashes, [canary.5](/release/rel_CITw5pLq5f7gKRY2nohHh-turborepo-v2-10-13-canary-5-fixes-yarn-bun-and-shutdown-bugs) preserved Yarn resolution declaration order and nested Bun package keys, and [canary.6](/release/rel_6W5Uzn-sg_n1izkFHxj65-turborepo-v2-10-13-canary-6-preserves-native-task-dependencies-across) kept native task dependencies from vanishing across entrypoints while passing `LOCALAPPDATA` through by default. None of these will change how you architect a build, but the Yarn and Bun lockfile fixes are the kind of thing that silently produces wrong installs — exactly the failure mode that erodes trust in a task runner.\n\n### Debugging where the tests fail\n\nOn the tooling side, [Vitest VS Code v1.52.0](/release/rel_ogH62Rck_TBPGLpfVIGu6-vitest-vs-code-v1-52-0-adds-trace-view-support-and-vitest-5-test-name-pattern) adds a trace view for debugging and fixes compatibility with Vitest 5's `testNamePattern` — the latter is a straightforward blocker for anyone who upgraded and found their filtered test runs silently not filtering. A smaller fix handles the legacy AST collector ignoring computed member calls emitted by esbuild's `using` helper, which would have quietly distorted coverage for code using explicit resource management.\n\nThe through-line for the week: package managers are absorbing responsibilities that used to require separate build systems, and the runners beneath them are being tuned for repos that no longer contain only JavaScript. If you maintain a heterogeneous monorepo, pnpm 12.4 is the release to actually try; the Turborepo canaries are the ones to keep an eye on if your installs have ever been subtly wrong.","releaseIds":["rel_RTqiEr5Z6X2JDvrRQtUkR","rel_s5yxsV0twf2jspPacbTeS","rel_O4TPDRY94ARe47wBu4LUw","rel_fq5JP1rGW0GDbfxhVoRkc","rel_CITw5pLq5f7gKRY2nohHh","rel_6W5Uzn-sg_n1izkFHxj65","rel_ogH62Rck_TBPGLpfVIGu6"],"releaseCount":7,"generatedAt":"2026-09-14T06:24:39.705Z","releases":[{"id":"rel_RTqiEr5Z6X2JDvrRQtUkR","title":"pnpm 12.4","path":"/release/rel_RTqiEr5Z6X2JDvrRQtUkR-pnpm-12-4","org":{"slug":"pnpm","name":"pnpm"},"importance":null},{"id":"rel_s5yxsV0twf2jspPacbTeS","title":"Turborepo v2.10.13-canary.3 performance optimizations across resolver, cache, and watch","path":"/release/rel_s5yxsV0twf2jspPacbTeS-resolver-reuse-cache-archiving-watch-mode-reuse-performance-across-the-stack","org":{"slug":"vercel","name":"Vercel"},"importance":null},{"id":"rel_O4TPDRY94ARe47wBu4LUw","title":"Turborepo v2.10.13-canary.2 adds Cargo root package support","path":"/release/rel_O4TPDRY94ARe47wBu4LUw-cargo-root-packages-supported-cli-parser-migrated","org":{"slug":"vercel","name":"Vercel"},"importance":2},{"id":"rel_fq5JP1rGW0GDbfxhVoRkc","title":"Turborepo v2.10.13-canary.4 restores leading flags for implicit run commands","path":"/release/rel_fq5JP1rGW0GDbfxhVoRkc-implicit-run-leading-flags-restored-experimentalci-in-task-hashes","org":{"slug":"vercel","name":"Vercel"},"importance":1},{"id":"rel_CITw5pLq5f7gKRY2nohHh","title":"Turborepo v2.10.13-canary.5 fixes Yarn, Bun, and shutdown bugs","path":"/release/rel_CITw5pLq5f7gKRY2nohHh-yarn-and-bun-lockfile-ordering-preserved-shutdown-interrupts-fixed","org":{"slug":"vercel","name":"Vercel"},"importance":1},{"id":"rel_6W5Uzn-sg_n1izkFHxj65","title":"Turborepo v2.10.13-canary.6 preserves native task dependencies across entrypoints","path":"/release/rel_6W5Uzn-sg_n1izkFHxj65-native-task-deps-preserved-across-entrypoints","org":{"slug":"vercel","name":"Vercel"},"importance":1},{"id":"rel_ogH62Rck_TBPGLpfVIGu6","title":"Vitest VS Code v1.52.0 adds trace view support and Vitest 5 test name pattern fixes","path":"/release/rel_ogH62Rck_TBPGLpfVIGu6-trace-view-support-vitest-5-name-pattern-fixes","org":{"slug":"vitest","name":"Vitest"},"importance":2}]}}