-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: vercel/turborepo
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.9.2
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: vercel/turborepo
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.9.3
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 4 commits
- 32 files changed
- 3 contributors
Commits on Mar 31, 2026
-
release(turborepo): 2.9.2 (#12521)
## Release v2.9.2 Versioned docs: https://v2-9-2.turborepo.dev ### Changes - release(turborepo): 2.9.1 (#12498) (`4240dd4`) - fix: Add retry logic to example update workflow push step (#12499) (`00a4aae`) - docs: Add documentation for cacheMaxAge and cacheMaxSize options (#12500) (`5b65487`) - feat(examples): Add Next.js + Elysia full-stack starter template (#12414) (`1559d0f`) - fix: Resolve correct nested bun lockfile versions during prune (#12506) (`ee5bcbf`) - Revert "fix: Avoid `setsid()` in PTY spawn to prevent macOS Gatekeeper CPU spikes" (#12507) (`6c3b8a6`) - release(turborepo): 2.9.2-canary.1 (#12508) (`2bebb91`) - fix: Unblock `watch` loop so interruptible persistent tasks restart on file changes (#12509) (`95ec9ed`) - fix(api-client): Treat * as wildcard in preflight Access-Control-Allow-Headers (#12503) (`960b2eb`) - release(turborepo): 2.9.2-canary.2 (#12510) (`d4d3f9d`) - docs: Document `turbo.*` generator variables (#12511) (`aa014c7`) - fix: Backfill missing pnpm workspace importer entries during prune (#12514) (`45f2f43`) - release(turborepo): 2.9.2-canary.3 (#12515) (`59a42a5`) - fix: Include transitive dependencies in engine graph pruning for affected paths using Task Graph (#12516) (`8c88521`) - release(turborepo): 2.9.2-canary.4 (#12518) (`aed2066`) - chore: Update AI-generated response text for clarity (#12517) (`4a4e661`) - fix: Preserve shallow install strategy during npm lockfile pruning (#12520) (`72577db`) --------- Co-authored-by: Turbobot <turbobot@vercel.com>
Configuration menu - View commit details
-
Copy full SHA for f68af3d - Browse repository at this point
Copy the full SHA f68af3dView commit details -
fix: Preserve per-workspace lockfiles during pnpm pruning (#12519)
## Summary - When a pnpm repo uses `shared-workspace-lockfile=false`, `turbo prune` previously merged all per-workspace lockfiles into a single shared lockfile and rewrote `.npmrc` to force `shared-workspace-lockfile=true`. This broke `pnpm install` in the pruned output because the lockfile structure didn't match the repo's actual lockfile strategy. - Now, prune detects per-workspace lockfile mode via `.npmrc` and preserves the lockfiles as-is: workspace lockfiles stay in their directories, the root lockfile is copied verbatim, and `.npmrc` is left unmodified. ## How to test Run the new integration tests: ``` cargo test -p turbo test_prune_pnpm_per_workspace_lockfile ``` The fixture at `turborepo-tests/integration/fixtures/pnpm_per_workspace_lockfile/` has a monorepo with `shared-workspace-lockfile=false` and per-workspace `pnpm-lock.yaml` files. The tests verify that pruning for `web` preserves the workspace lockfiles (including transitive dependency `ui` and `config`), excludes `docs`, and leaves `.npmrc` untouched.
Configuration menu - View commit details
-
Copy full SHA for a252394 - Browse repository at this point
Copy the full SHA a252394View commit details -
release(turborepo): 2.9.3-canary.1 (#12523)
## Release v2.9.3-canary.1 Versioned docs: https://v2-9-3-canary-1.turborepo.dev ### Changes - release(turborepo): 2.9.2-canary.4 (#12518) (`aed2066`) - chore: Update AI-generated response text for clarity (#12517) (`4a4e661`) - fix: Preserve shallow install strategy during npm lockfile pruning (#12520) (`72577db`) - release(turborepo): 2.9.2 (#12521) (`f68af3d`) - fix: Preserve per-workspace lockfiles during pnpm pruning (#12519) (`a252394`) Co-authored-by: Turbobot <turbobot@vercel.com>
Configuration menu - View commit details
-
Copy full SHA for 68004db - Browse repository at this point
Copy the full SHA 68004dbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7650a33 - Browse repository at this point
Copy the full SHA 7650a33View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v2.9.2...v2.9.3