v2.10.9

vercel/turborepov2.10.9Aug 7, 2026by github-actions[bot]

AI Summary

This release focuses on performance optimizations for lockfile parsing and dependency resolution across pnpm, Bun, npm, and Yarn, alongside new features for Python quality tools and native task execution.

Key Highlights

  • Significant performance improvements in lockfile parsing and resolution
  • New Python quality tool declarations and task synthesis
  • Enhancements to native task execution models and dependency composition
  • Fixes for Windows process cleanup and Git ignore invalidation

New Features

  • Parse Python quality tool declarations
  • Synthesize Python quality tasks
  • Compose aggregate native task dependencies
  • Generalize native command arguments
  • Hash Python quality task inputs

Full Release Notes

<!-- Release notes generated using configuration in .github/release.yml at v2.10.9 -->

## What's Changed
### Changelog
* chore: Release Turborepo 2.10.8 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13626
* perf: Walk literal-prefix tree globs without wax compilation by @charpeni in https://github.com/vercel/turborepo/pull/13522
* fix: Accept semver ranges in devEngines.packageManager.version by @bangseongbeom in https://github.com/vercel/turborepo/pull/13623
* docs: Explain affected package invalidation reasons by @ghoullier in https://github.com/vercel/turborepo/pull/13594
* perf(lockfiles): Borrow field-name scalars in the pnpm fast parser by @anthonyshew in https://github.com/vercel/turborepo/pull/13648
* perf(repository): Avoid discarded alias allocation in Relationship by @anthonyshew in https://github.com/vercel/turborepo/pull/13650
* perf(lockfiles): Drop redundant human_name clone for pnpm v7/v9 by @anthonyshew in https://github.com/vercel/turborepo/pull/13649
* perf: Index workspace nodes by name in project_relationships by @anthonyshew in https://github.com/vercel/turborepo/pull/13647
* perf: Share resolution identity lists across identical workspace closures by @anthonyshew in https://github.com/vercel/turborepo/pull/13641
* docs: Fix duplicated word in runtime dependencies guide summary by @anthonyshew in https://github.com/vercel/turborepo/pull/13630
* refactor: Remove turborepo-lsp dependency on turborepo-lib by @anthonyshew in https://github.com/vercel/turborepo/pull/13631
* perf: Index Bun nested lockfile entries by name for fallback resolution by @anthonyshew in https://github.com/vercel/turborepo/pull/13633
* perf: Memoize framework inference per package during task hashing by @anthonyshew in https://github.com/vercel/turborepo/pull/13634
* perf: Avoid materializing transient declarations in external_dependencies by @anthonyshew in https://github.com/vercel/turborepo/pull/13646
* perf: Enable shared closure DP for npm and yarn1 lockfiles by @anthonyshew in https://github.com/vercel/turborepo/pull/13635
* perf: Parse pnpm explicit-key entries in the lockfile fast path by @anthonyshew in https://github.com/vercel/turborepo/pull/13640
* perf: Parallelize resolution fingerprint hashing by @anthonyshew in https://github.com/vercel/turborepo/pull/13642
* perf: Build resolution identity lists in parallel by @anthonyshew in https://github.com/vercel/turborepo/pull/13643
* perf: Intern resolution identities as Arc&lt;str&gt; across closures by @anthonyshew in https://github.com/vercel/turborepo/pull/13645
* fix: Compose affected tasks with package filters by @anthonyshew in https://github.com/vercel/turborepo/pull/13656
* docs: Explain worktree cache path isolation by @anthonyshew in https://github.com/vercel/turborepo/pull/13657
* fix: Upgrade brace-expansion to 5.0.9 by @anthonyshew in https://github.com/vercel/turborepo/pull/13658
* docs: Correct verified inaccuracies in the Turborepo Agent Skill by @charpeni in https://github.com/vercel/turborepo/pull/13644
* chore: Update Next.js to 16.3.0 by @anthonyshew in https://github.com/vercel/turborepo/pull/13659
* fix: Don't use `eprintln!` in the panic hook by @molofsky in https://github.com/vercel/turborepo/pull/13637
* fix: Invalidate only when Git ignore sources change by @smasato in https://github.com/vercel/turborepo/pull/13632
* docs: Update Geistdocs to 1.19.4 by @christopherkindl in https://github.com/vercel/turborepo/pull/13680
* docs: Exclude Turborepo from its own OSS products menu by @christopherkindl in https://github.com/vercel/turborepo/pull/13681
* docs: Use the geistdocs Turborepo logo in the navbar by @christopherkindl in https://github.com/vercel/turborepo/pull/13682
* docs: Update redirected vercel.com/nextjs.org links to current targets by @molebox in https://github.com/vercel/turborepo/pull/13685
* refactor: Generalize native command arguments by @anthonyshew in https://github.com/vercel/turborepo/pull/13664
* refactor: Move native contracts to tasks by @anthonyshew in https://github.com/vercel/turborepo/pull/13665
* docs: Fix loadTransformers reference in turbo-codemod README by @latent-9 in https://github.com/vercel/turborepo/pull/13683
* refactor: Model native task execution explicitly by @anthonyshew in https://github.com/vercel/turborepo/pull/13666
* feat: Compose aggregate native task dependencies by @anthonyshew in https://github.com/vercel/turborepo/pull/13667
* fix: Respect aggregate task overrides by @anthonyshew in https://github.com/vercel/turborepo/pull/13668
* test: Stabilize watch task inputs regression test by @anthonyshew in https://github.com/vercel/turborepo/pull/13686
* feat: Parse Python quality tool declarations by @anthonyshew in https://github.com/vercel/turborepo/pull/13669
* feat: Resolve Python quality plans by @anthonyshew in https://github.com/vercel/turborepo/pull/13670
* refactor: Extract uv native task specs by @anthonyshew in https://github.com/vercel/turborepo/pull/13671
* feat: Synthesize Python quality tasks by @anthonyshew in https://github.com/vercel/turborepo/pull/13672
* test: Cover Python quality task commands by @anthonyshew in https://github.com/vercel/turborepo/pull/13673
* feat: Hash Python quality task inputs by @anthonyshew in https://github.com/vercel/turborepo/pull/13674
* test: Cover Python quality task graph by @anthonyshew in https://github.com/vercel/turborepo/pull/13675
* chore: Release Turborepo 2.10.9-canary.1 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13687
* docs: Document dependency-driven Python tasks by @anthonyshew in https://github.com/vercel/turborepo/pull/13676
* fix: Prune Bun wildcard workspace dev dependencies by @anthonyshew in https://github.com/vercel/turborepo/pull/13694
* fix: Prevent Windows process cleanup PID reuse by @anthonyshew in https://github.com/vercel/turborepo/pull/13695

## New Contributors
* @bangseongbeom made their first contribution in https://github.com/vercel/turborepo/pull/13623
* @ghoullier made their first contribution in https://github.com/vercel/turborepo/pull/13594
* @molofsky made their first contribution in https://github.com/vercel/turborepo/pull/13637
* @smasato made their first contribution in https://github.com/vercel/turborepo/pull/13632
* @latent-9 made their first contribution in https://github.com/vercel/turborepo/pull/13683

**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.10.8...v2.10.9