Skip to content
Permalink

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
Choose a base ref
...
head repository: vercel/turborepo
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.9.3
Choose a head ref
  • 4 commits
  • 32 files changed
  • 3 contributors

Commits on Mar 31, 2026

  1. 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>
    github-actions[bot] and turbobot-temp authored Mar 31, 2026
    Configuration menu
    Copy the full SHA
    f68af3d View commit details
    Browse the repository at this point in the history
  2. 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.
    anthonyshew authored Mar 31, 2026
    Configuration menu
    Copy the full SHA
    a252394 View commit details
    Browse the repository at this point in the history
  3. 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>
    github-actions[bot] and turbobot-temp authored Mar 31, 2026
    Configuration menu
    Copy the full SHA
    68004db View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7650a33 View commit details
    Browse the repository at this point in the history
Loading