Turborepo v2.9.16 Lands Heap Allocation Profiling and pnpm Fixes

Turborepo v2.9.16 Lands Heap Allocation Profiling and pnpm Fixes

lschvn

Heap Allocation Profiling

The most significant user-facing addition in v2.9.16 is heap allocation profiling support via OpenTelemetry (OTEL) traces. This release adds heap allocation data to Turborepo's existing OTEL trace output, letting you see per-task and per-package memory consumption in your CI or local tracing setup.

To use it, point TURBO_TRACE_ENDPOINT at your OTEL collector as before β€” heap data now appears alongside the existing duration and span information. The implementation adds a new heap.allocated event to task spans with category breakdowns (V8 heap, native allocations, etc.).

This is particularly useful for monorepos where a single slow or memory-hungry package can drag down the whole CI pipeline.

pnpm Injected Peer Fix

The v2.9.15 release introduced a regression in how Turborepo handles pnpm injected peer packages. When a package uses pnpm's injected: true workspace protocol for peer dependencies, Turborepo was incorrectly omitting or mishandling those entries during the task graph resolution.

v2.9.16 fixes this. If your monorepo uses pnpm with injected peers β€” a pattern sometimes used to ensure a single physical copy of a peer package across the workspace β€” Turborepo now correctly preserves those entries.

OTEL Endpoint Validation Hardened

Turborepo v2.9.16 also hardens the OTEL endpoint URL validation. Previously, a malformed endpoint URL (e.g., missing scheme or wrong port) could cause Turborepo to crash silently or produce garbled trace output. The new validation is stricter and fails fast with a clear error message if the endpoint is misconfigured.

PTY Shutdown and npm tlog Fixes

Two smaller but impactful fixes:

  • PTY shutdown hang β€” on certain Linux distributions, the pseudo-terminal (PTY) used to run tasks in watch mode would hang on shutdown, leaving turbo processes orphaned. This is now fixed.
  • npm tlog publish retries β€” npm package publishing with turbo run build --dry-run=json (or the CI pipeline's tlog output) would fail unrecoverably on transient network errors. v2.9.16 adds automatic retries for tlog publish failures.

Other Changes

  • --gitignore root handling in prune β€” turbo prune now correctly respects the root .gitignore when determining what to include in the artifact for a given scope, fixing edge cases where extra files were included.
  • Profile tracing coverage improved β€” task spans that were missing parent attribution in previous releases are now correctly linked in the trace output.

Updating

npm install -g turbo@latest
# or
brew install turbo
# or
cargo install turbo

Turborepo v2.9.16 is the current stable release. Canary builds (v2.9.17-canary.x) are available for testing the next batch of changes.

Related articles

More coverage with overlapping topics and tags.

Oxc v0.134: oxlint v1.68 Adds Vue Linter Rules and TypeScript Accessor Checks
JavaScript

Oxc v0.134: oxlint v1.68 Adds Vue Linter Rules and TypeScript Accessor Checks

Oxc's June release ships oxlint v1.68.0 with two new Vue rules, a TypeScript method-signature-style linter rule, and parser improvements that reject ambient context misuse. oxfmt v0.53.0 ships formatter updates alongside performance work on token parsing.
Astro 6.1.8 Patches Critical Netlify Deploy Bug and Image Endpoint Security Flaw
TypeScript

Astro 6.1.8 Patches Critical Netlify Deploy Bug and Image Endpoint Security Flaw

Astro 6.1.8 fixes a regression where build output filenames containing special characters caused deploy failures on Netlify and Vercel, and patches a content-type confusion vulnerability in the built-in image endpoint that could serve non-SVG content as SVG.
TypeScript 6.0: The Last JS Release Before the Go-Based Native Compiler
TypeScript

TypeScript 6.0: The Last JS Release Before the Go-Based Native Compiler

TypeScript 6.0 lands as a bridge release with new features like #/ subpath imports, stable type ordering, and a path toward TypeScript 7.0's native Go codebase.

Comments

Log in Log in to join the conversation.

No comments yet. Be the first to share your thoughts.