这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@robobun
Copy link
Contributor

@robobun robobun commented Aug 4, 2025

Description

Updates Turborepo's bun.lock parser to better align with Bun's current lockfile format implementation. This addresses version detection issues, adds support for new lockfile fields, and implements v1 optimizations.

Testing Instructions

# Unit tests
cargo test -p turborepo-lockfiles

# Specific Bun tests
cargo test -p turborepo-lockfiles bun

# Run with coverage (requires llvm-tools-preview)
cargo coverage

Test Results

  • ✅ All 238 lockfile tests pass
  • ✅ 72 Bun-specific tests (43 newly added)
  • ✅ No regressions in existing functionality

Background

While investigating Turborepo's bun.lock support against Bun's implementation (src/install/lockfile/bun.lock.zig), I identified several gaps:

  1. Critical: global_change() only detected package manager changes, not lockfile version changes
  2. Missing features: Several fields were not parsed (catalogs, overrides, trusted dependencies)
  3. Performance: V1 workspace optimizations were not implemented
  4. Compatibility: Platform-specific constraints (os/cpu) were ignored

Changes

Core Fixes

  1. Version Detection

    • Added LockfileVersion enum for v0/v1 handling
    • Fixed global_change() to detect version changes (prevents incorrect cache hits)
    • Added bun_global_change() for API consistency with other package managers
  2. New Field Support

    pub struct BunLockfileData {
        lockfile_version: i32,
        workspaces: Map<String, WorkspaceEntry>,
        packages: Map<String, PackageEntry>,
        patched_dependencies: Map<String, String>,
        trusted_dependencies: Vec<String>,      // NEW
        overrides: Map<String, String>,         // NEW
        catalog: Map<String, String>,           // NEW
        catalogs: Map<String, Map<String, String>>, // NEW
    }
  3. Platform Constraints

    pub enum Negatable {
        None,                    // No constraint
        Single(String),          // "darwin"
        Multiple(Vec<String>),   // ["x64", "arm64"]
        Not(Vec<String>),        // ["\!win32", "\!freebsd"]
    }

Feature Implementations

Feature Implementation Tests Added
Catalog Resolution resolve_catalog_version() method 11
Overrides apply_overrides() method 3
V1 Workspaces Direct resolution from workspaces section 10
Platform Constraints Negatable type with serde support 6
Subgraph Filtering Smart metadata filtering 2
Integration Tests Combined feature scenarios 11

Resolution Order

The implementation follows this precedence: catalog → override → patch

Areas of Uncertainty

I want to be transparent about areas where I'm less confident or made assumptions:

  1. V1 Behavior Beyond Workspaces: While I implemented the workspace optimization mentioned in Bun's source, there may be other v1-specific behaviors I'm not aware of.

  2. Trusted Dependencies: I parse and filter these, but I'm unsure if Turborepo needs to actually use this information for any security/installation decisions.

  3. Platform Constraint Application: The Negatable::allows() method is implemented but unused. I'm not sure where in Turborepo's architecture platform filtering should actually occur.

  4. Catalog Precedence: I assumed catalogs should be resolved before overrides based on the code structure, but this precedence isn't explicitly documented.

  5. Error Handling: Some edge cases (like circular workspace dependencies or conflicting overrides) may not be handled optimally.

Potential Issues

  1. Performance: The catalog resolution adds an extra lookup step during package resolution. For large monorepos with many catalog references, this could impact performance.

  2. Backward Compatibility: While I've maintained compatibility with existing lockfiles, the changes to global_change() will cause cache invalidation for projects upgrading Turborepo.

  3. Incomplete Platform Support: The platform constraints are parsed but not actively used for filtering during dependency resolution.

Questions for Reviewers

  1. Should platform constraints actually filter dependencies during resolution, or is parsing/preserving them sufficient?
  2. Is the catalog resolution precedence (catalog → override → patch) correct?
  3. Should trusted dependencies affect any Turborepo behavior?
  4. Are there other v1-specific optimizations beyond workspace handling that should be implemented?
  5. Should the UnsupportedVersion error be recoverable or fatal?

Known Limitations

  1. Trusted dependencies are parsed but don't affect installation behavior
  2. Platform constraints are parsed but not used for dependency filtering (would need higher-level changes)
  3. libc field is not implemented (marked TODO in Bun source)
  4. The Negatable::allows() method for platform matching is unused (added for completeness)

Additional Context

This is a draft PR as I would appreciate feedback on the implementation approach, particularly in areas where I made assumptions about intended behavior.

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

@vercel
Copy link
Contributor

vercel bot commented Aug 4, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
examples-basic-web Ready Ready Preview Comment Sep 30, 2025 9:31pm
examples-designsystem-docs Ready Ready Preview Comment Sep 30, 2025 9:31pm
examples-gatsby-web Ready Ready Preview Comment Sep 30, 2025 9:31pm
examples-kitchensink-blog Ready Ready Preview Comment Sep 30, 2025 9:31pm
examples-nonmonorepo Ready Ready Preview Comment Sep 30, 2025 9:31pm
examples-svelte-web Ready Ready Preview Comment Sep 30, 2025 9:31pm
examples-tailwind-web Ready Ready Preview Comment Sep 30, 2025 9:31pm
examples-vite-web Ready Ready Preview Comment Sep 30, 2025 9:31pm
turbo-site Ready Ready Preview Comment Sep 30, 2025 9:31pm

@vercel
Copy link
Contributor

vercel bot commented Aug 4, 2025

Someone is attempting to deploy a commit to the Vercel Team on Vercel.

A member of the Team first needs to authorize it.

…rent implementation

Updates Turborepo's bun.lock parser to support features from Bun's latest lockfile
format, addressing compatibility gaps and adding missing functionality.

## What?

- Add LockfileVersion enum for v0/v1 format handling
- Fix global_change() to detect version changes (was only checking package manager)
- Add support for new lockfile fields: trustedDependencies, overrides, catalog/catalogs
- Implement platform-specific constraints (os/cpu fields)
- Add v1 workspace optimizations (reduces redundant package entries)
- Add bun_global_change() standalone function for API consistency

## Why?

The existing implementation had several gaps:
- Cache invalidation could fail when lockfile versions changed
- New Bun lockfile fields were silently ignored
- V1 optimizations were not implemented
- Platform constraints were not parsed

## How?

- Catalog resolution via resolve_catalog_version() method
- Override support via apply_overrides() method
- Negatable enum for platform constraints
- Version-aware workspace resolution
- Comprehensive subgraph filtering

## Testing

Ran tests with:
```bash
cargo test -p turborepo-lockfiles
```

- Added 43 new tests (72 total Bun tests, up from 29)
- All 238 package manager tests pass
- Test coverage includes: version detection, catalogs, overrides, v1 workspaces,
  platform constraints, integration scenarios

## Notes

- Based on Bun's src/install/lockfile/bun.lock.zig
- Follows existing patterns from npm/pnpm/yarn implementations
- Some features (trusted deps, platform filtering) are parsed but not actively used

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@Firgrep
Copy link
Contributor

Firgrep commented Aug 25, 2025

@Jarred-Sumner Any updates or timelines on this? Seems like turborepo with bun catalogs just triggers fan-out tasks whenever there is a change to the lock file (e.g. adding any package, local workspace or external).

@anthonyshew anthonyshew changed the title feat(turborepo-lockfiles): Update bun.lock support to match Bun's current implementation feat(turborepo-lockfiles): update bun.lock support to match Bun's current implementation Sep 30, 2025
let workspace_key = format!("{workspace_name}/{name}");
if let Some((_key, entry)) = self.package_entry(&workspace_key) {
// Check if the entry matches the override version (if different from resolved)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When an override is specified but the overridden package doesn't exist in the lockfile, the code silently ignores the override and returns the original package instead of failing or returning None.

View Details
📝 Patch Details
diff --git a/crates/turborepo-lockfiles/src/bun/mod.rs b/crates/turborepo-lockfiles/src/bun/mod.rs
index d78140d22..96a69e7b8 100644
--- a/crates/turborepo-lockfiles/src/bun/mod.rs
+++ b/crates/turborepo-lockfiles/src/bun/mod.rs
@@ -416,6 +416,10 @@ impl Lockfile for BunLockfile {
                         key: override_entry.ident.to_string(),
                         version: pkg_version,
                     }));
+                } else {
+                    // Override specified but target package not found in lockfile
+                    // Return None to be consistent with catalog resolution behavior
+                    return Ok(None);
                 }
             }
 

Analysis

Inconsistent error handling for unsatisfiable overrides in BunLockfile.resolve_package()

What fails: In crates/turborepo-lockfiles/src/bun/mod.rs, the resolve_package() method silently ignores overrides when the overridden package version doesn't exist in the lockfile, returning the original package instead of None.

How to reproduce:

 ,
    "packages": {"foo": ["foo@1.0.0", {}, "sha512"]},
    "overrides": {"foo": "2.0.0"}  // 2.0.0 doesn't exist!
}));

let result = lockfile.resolve_package("", "foo", "^1.0.0").unwrap();
// Before fix: returns Some(Package{key: "foo@1.0.0", ...})
// After fix: returns None

Result: The method returns Some(Package{key: "foo@1.0.0"}) instead of None, silently ignoring the override.

Expected: Should return Ok(None) to be consistent with catalog resolution behavior (lines 367-373), which returns Ok(None) when a catalog reference can't be resolved.

Fix: Added else clause after line 419 to return Ok(None) when override package not found, matching the behavior of catalog resolution and preventing silent fallback to the original package.

@anthonyshew anthonyshew marked this pull request as ready for review September 30, 2025 21:40
@anthonyshew anthonyshew requested a review from a team as a code owner September 30, 2025 21:40
Copy link
Contributor

@anthonyshew anthonyshew left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we're far enough along on this to merge. We can put it in people's hands and see how it does on a canary.

Tremendous thanks to @Jarred-Sumner for kindling the flame to get us to do this, finally. Let's roll.

@anthonyshew
Copy link
Contributor

anthonyshew commented Sep 30, 2025

Not sure why the check for a site build is hanging. The site is done building successfully. I'll merge past it.

@anthonyshew anthonyshew merged commit 16a64c5 into vercel:main Sep 30, 2025
39 of 40 checks passed
@Firgrep
Copy link
Contributor

Firgrep commented Oct 1, 2025

@anthonyshew Thanks so much for this! Really appreciate your work!

@anthonyshew
Copy link
Contributor

@Firgrep Appreciate the kind word. Please try it out and let us know how it goes, per this comment.

ch4og pushed a commit to csmplay/csm-mapban that referenced this pull request Nov 18, 2025
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [turbo](https://turborepo.com) ([source](https://github.com/vercel/turborepo)) | [`2.5.6` -> `2.6.1`](https://renovatebot.com/diffs/npm/turbo/2.5.6/2.6.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/turbo/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/turbo/2.5.6/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>vercel/turborepo (turbo)</summary>

### [`v2.6.1`](https://github.com/vercel/turborepo/releases/tag/v2.6.1): Turborepo v2.6.1

[Compare Source](vercel/turborepo@v2.6.0...v2.6.1)

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

#### What's Changed

##### Docs

- docs: 2.6 release blog post by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11003](vercel/turborepo#11003)
- docs: update typo'd link by [@&#8203;lishaduck](https://github.com/lishaduck) in [#&#8203;11032](vercel/turborepo#11032)
- chore(with-docker/Dockerfile): Some improvements by [@&#8203;yairopro](https://github.com/yairopro) in [#&#8203;11010](vercel/turborepo#11010)
- docs: Fix grammatical mistake on structuring-a-repository.mdx by [@&#8203;Andrew-Pynch](https://github.com/Andrew-Pynch) in [#&#8203;11091](vercel/turborepo#11091)
- feat: Cross-platform microfrontends port command by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11098](vercel/turborepo#11098)

##### [@&#8203;turbo/codemod](https://github.com/turbo/codemod)

- ci: Fix flake in JS tests by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11067](vercel/turborepo#11067)

##### [@&#8203;turbo/repository](https://github.com/turbo/repository)

- chore: Update to Rust 1.91.0 by [@&#8203;ognevny](https://github.com/ognevny) in [#&#8203;10885](vercel/turborepo#10885)

##### Examples

- examples(deps-dev): bump [@&#8203;types/node](https://github.com/types/node) from 18.17.4 to 24.10.0 in /examples/non-monorepo by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11037](vercel/turborepo#11037)
- examples(deps-dev): bump the kitchen-sink group in /examples/kitchen-sink with 9 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11043](vercel/turborepo#11043)
- examples: Remove redundant border declaration by [@&#8203;Yeom-JinHo](https://github.com/Yeom-JinHo) in [#&#8203;11042](vercel/turborepo#11042)
- examples(deps-dev): bump turbo from 2.5.6 to 2.6.0 in /examples/with-shell-commands in the with-shell-commands group by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11039](vercel/turborepo#11039)
- examples(deps-dev): bump the with-svelte group in /examples/with-svelte with 7 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11041](vercel/turborepo#11041)
- examples(deps): bump the basic group in /examples/basic with 9 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11040](vercel/turborepo#11040)
- examples(deps-dev): bump the with-tailwind group in /examples/with-tailwind with 6 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11038](vercel/turborepo#11038)
- examples(deps): bump next from 16.0.0 to 16.0.1 in /examples/non-monorepo by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11051](vercel/turborepo#11051)
- examples(deps): bump next from 16.0.0 to 16.0.1 in /examples/basic by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11082](vercel/turborepo#11082)
- examples(deps): bump next from 16.0.0 to 16.0.1 in /examples/with-tailwind by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11083](vercel/turborepo#11083)
- examples(dev-deps): bump eslint-config-next from 16.0.0 to 16.0.1 in /examples/non-monorepo by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11086](vercel/turborepo#11086)
- examples(fix): Gradient in `with-tailwind` by [@&#8203;mahi656](https://github.com/mahi656) in [#&#8203;11073](vercel/turborepo#11073)
- examples(dev-deps): bump svelte from 5.43.3 to 5.43.5 in /examples/with-svelte by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11087](vercel/turborepo#11087)
- examples(deps): bump next from 16.0.0 to 16.0.1 in /examples/kitchen-sink by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11088](vercel/turborepo#11088)

##### Changelog

- fix: Improve parity with real Bun lockfile format for `prune` by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11048](vercel/turborepo#11048)
- fix: add some Linux variables to default passthrough env vars by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10959](vercel/turborepo#10959)
- fix: Labels for k + j backwards in binds list by [@&#8203;ethan-fraser](https://github.com/ethan-fraser) in [#&#8203;11036](vercel/turborepo#11036)
- fix(prune): Add bunfig.toml to list of copied files by [@&#8203;Gabrola](https://github.com/Gabrola) in [#&#8203;11055](vercel/turborepo#11055)
- fix(prune): Handle `patchedDependencies` for bun by [@&#8203;Gabrola](https://github.com/Gabrola) in [#&#8203;11027](vercel/turborepo#11027)
- fix(boundaries): Enable import attributes parsing by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11053](vercel/turborepo#11053)
- fix: Improve determinism for graceful shutdown by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11063](vercel/turborepo#11063)
- ci: Lower opt-level and remove debug symbols for dev profile by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11068](vercel/turborepo#11068)
- ci: Avoid flaking for test server mock by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11066](vercel/turborepo#11066)
- ci: Don't install dependencies in tests that don't need it by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11071](vercel/turborepo#11071)
- fix: Revert "fix(logs): create log files for non-cached tasks" by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11072](vercel/turborepo#11072)
- ci: Fix leaky tests by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11081](vercel/turborepo#11081)
- fix: Bun lockfile pruner adjustment by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11092](vercel/turborepo#11092)
- fix: Improve version resolution in Bun lockfiles by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11095](vercel/turborepo#11095)
- feat: Move icon to left side in TUI by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11097](vercel/turborepo#11097)

#### New Contributors

- [@&#8203;lishaduck](https://github.com/lishaduck) made their first contribution in [#&#8203;11032](vercel/turborepo#11032)
- [@&#8203;Yeom-JinHo](https://github.com/Yeom-JinHo) made their first contribution in [#&#8203;11042](vercel/turborepo#11042)
- [@&#8203;ethan-fraser](https://github.com/ethan-fraser) made their first contribution in [#&#8203;11036](vercel/turborepo#11036)
- [@&#8203;yairopro](https://github.com/yairopro) made their first contribution in [#&#8203;11010](vercel/turborepo#11010)
- [@&#8203;Gabrola](https://github.com/Gabrola) made their first contribution in [#&#8203;11055](vercel/turborepo#11055)
- [@&#8203;mahi656](https://github.com/mahi656) made their first contribution in [#&#8203;11073](vercel/turborepo#11073)
- [@&#8203;Andrew-Pynch](https://github.com/Andrew-Pynch) made their first contribution in [#&#8203;11091](vercel/turborepo#11091)

**Full Changelog**: <vercel/turborepo@v2.6.0...v2.6.1>

### [`v2.6.0`](https://github.com/vercel/turborepo/releases/tag/v2.6.0): Turborepo v2.6.0

[Compare Source](vercel/turborepo@v2.5.8...v2.6.0)

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

#### What's Changed

##### Docs

- docs: clarification on Transit Nodes docs by [@&#8203;maschwenk](https://github.com/maschwenk) in [#&#8203;9181](vercel/turborepo#9181)
- docs: add GitHub Actions reusable workflow documentation for remote caching by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10923](vercel/turborepo#10923)
- docs: generate blog release OG images by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10936](vercel/turborepo#10936)
- docs: fix correct package name from eslint-config-turbo to eslint-plugin-turbo by [@&#8203;tetzng](https://github.com/tetzng) in [#&#8203;10954](vercel/turborepo#10954)
- docs: align tailwindcss 4 guide to the with-tailwind example  by [@&#8203;esauri](https://github.com/esauri) in [#&#8203;10963](vercel/turborepo#10963)
- docs: fix typos and formatting issues in Playwright guide by [@&#8203;yamcodes](https://github.com/yamcodes) in [#&#8203;10980](vercel/turborepo#10980)
- docs: adjust compute hours saved component initial value by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10958](vercel/turborepo#10958)
- docs: clarify passthrough args comparison by [@&#8203;emilbjorklund](https://github.com/emilbjorklund) in [#&#8203;10990](vercel/turborepo#10990)
- docs: fix profile images on home page by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10993](vercel/turborepo#10993)
- feat: microfrontends by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10982](vercel/turborepo#10982)
- docs: Clarify passtrhough args cache miss by [@&#8203;eug-vs](https://github.com/eug-vs) in [#&#8203;11026](vercel/turborepo#11026)
- fix: path validation in `microfrontends.json` by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11006](vercel/turborepo#11006)
- feat(microfrontends): schema.json for microfrontends.json by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11008](vercel/turborepo#11008)

##### create-turbo

- feat: update `create-turbo` Bun prompt text by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10918](vercel/turborepo#10918)

##### eslint

- fix(eslint-config-turbo): use module.exports for ESLint v8 compatibility by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10902](vercel/turborepo#10902)
- perf: \~8.6x faster ESLint rule by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10943](vercel/turborepo#10943)

##### Examples

- Update package.json by [@&#8203;Satheeshsk369](https://github.com/Satheeshsk369) in [#&#8203;10892](vercel/turborepo#10892)
- docs: fix JSDoc type for ESLint config in basic example by [@&#8203;victor-code19](https://github.com/victor-code19) in [#&#8203;10727](vercel/turborepo#10727)
- refactor(examples): enhance `with-nestjs` ([#&#8203;8131](vercel/turborepo#8131)) by [@&#8203;Neosoulink](https://github.com/Neosoulink) in [#&#8203;10964](vercel/turborepo#10964)
- examples: Upgrade core-team-maintained examples to Next.js 16 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11014](vercel/turborepo#11014)

##### Changelog

- chore: remove missing turbow\.js references by [@&#8203;pauloZion1](https://github.com/pauloZion1) in [#&#8203;10893](vercel/turborepo#10893)
- fix(turborepo-lockfiles): handle missing optional dependencies in Bun lockfiles by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10909](vercel/turborepo#10909)
- fix: update `ui` suggested value in error message for turbo.json by [@&#8203;hugomassing](https://github.com/hugomassing) in [#&#8203;10896](vercel/turborepo#10896)
- chore: remove unused `origin` field from auth structs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10910](vercel/turborepo#10910)
- feat: new OAuth flow for Turborepo CLI with Vercel by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10911](vercel/turborepo#10911)
- fix(lockfiles): include bundled dependencies in Bun lockfile subgraphs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10915](vercel/turborepo#10915)
- test: increase coverage for lockfiles by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10633](vercel/turborepo#10633)
- fix: update remote cache OAuth refresh flow by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10916](vercel/turborepo#10916)
- feat(tui): task list search with `/` by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10908](vercel/turborepo#10908)
- fix: --graph=foo.dot should not require graphviz installed by [@&#8203;blast-hardcheese](https://github.com/blast-hardcheese) in [#&#8203;10942](vercel/turborepo#10942)
- chore: update devcontainer configuration by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10955](vercel/turborepo#10955)
- fix: `injectWorkspacePackages` for `turbo prune` with pnpm by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10945](vercel/turborepo#10945)
- fix: adjust binary call for microfrontends proxy on Windows by [@&#8203;mknichel](https://github.com/mknichel) in [#&#8203;10962](vercel/turborepo#10962)
- Add worktrees.json configuration to .cursor directory by [@&#8203;Copilot](https://github.com/Copilot) in [#&#8203;10986](vercel/turborepo#10986)
- fix: windows symlinking bug by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10992](vercel/turborepo#10992)
- fix: added Linux env vars to global passthroughs by [@&#8203;aviramha](https://github.com/aviramha) in [#&#8203;10984](vercel/turborepo#10984)
- fix: recursive transitive closure analysis in npm lockfile parser by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10988](vercel/turborepo#10988)
- ci(fix): dynamically set ports in proxy integration tests by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;11009](vercel/turborepo#11009)
- feat: Add support for custom microfrontends.json naming by [@&#8203;kitfoster](https://github.com/kitfoster) in [#&#8203;11022](vercel/turborepo#11022)

#### New Contributors

- [@&#8203;Satheeshsk369](https://github.com/Satheeshsk369) made their first contribution in [#&#8203;10892](vercel/turborepo#10892)
- [@&#8203;robobun](https://github.com/robobun) made their first contribution in [#&#8203;10729](vercel/turborepo#10729)
- [@&#8203;hugomassing](https://github.com/hugomassing) made their first contribution in [#&#8203;10896](vercel/turborepo#10896)
- [@&#8203;victor-code19](https://github.com/victor-code19) made their first contribution in [#&#8203;10727](vercel/turborepo#10727)
- [@&#8203;blast-hardcheese](https://github.com/blast-hardcheese) made their first contribution in [#&#8203;10942](vercel/turborepo#10942)
- [@&#8203;tetzng](https://github.com/tetzng) made their first contribution in [#&#8203;10954](vercel/turborepo#10954)
- [@&#8203;esauri](https://github.com/esauri) made their first contribution in [#&#8203;10963](vercel/turborepo#10963)
- [@&#8203;Copilot](https://github.com/Copilot) made their first contribution in [#&#8203;10986](vercel/turborepo#10986)
- [@&#8203;emilbjorklund](https://github.com/emilbjorklund) made their first contribution in [#&#8203;10990](vercel/turborepo#10990)
- [@&#8203;aviramha](https://github.com/aviramha) made their first contribution in [#&#8203;10984](vercel/turborepo#10984)
- [@&#8203;eug-vs](https://github.com/eug-vs) made their first contribution in [#&#8203;11026](vercel/turborepo#11026)
- [@&#8203;kitfoster](https://github.com/kitfoster) made their first contribution in [#&#8203;11022](vercel/turborepo#11022)

**Full Changelog**: <vercel/turborepo@v2.5.8...v2.6.0>

### [`v2.5.8`](https://github.com/vercel/turborepo/releases/tag/v2.5.8): Turborepo v2.5.8

[Compare Source](vercel/turborepo@v2.5.7...v2.5.8)

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

#### What's Changed

##### create-turbo

- fix: revert [#&#8203;10847](vercel/turborepo#10847) by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10882](vercel/turborepo#10882)

##### Changelog

- chore: add Cursor slash command by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10881](vercel/turborepo#10881)

**Full Changelog**: <vercel/turborepo@v2.5.7...v2.5.8>

### [`v2.5.7`](https://github.com/vercel/turborepo/releases/tag/v2.5.7): Turborepo v2.5.7

[Compare Source](vercel/turborepo@v2.5.6...v2.5.7)

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

#### What's Changed

##### Docs

- docs: add `TURBO_CONCURRENCY` to options overview page by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10772](vercel/turborepo#10772)
- fix(docs): fix broken anchor links to --graph option by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10773](vercel/turborepo#10773)
- docs: clarify TURBO\_TEAM secret usage by [@&#8203;vikhyathdevadiga](https://github.com/vikhyathdevadiga) in [#&#8203;10795](vercel/turborepo#10795)
- docs: add Buildkite example to CI Vendors documentation by [@&#8203;AndrewDiMola](https://github.com/AndrewDiMola) in [#&#8203;10721](vercel/turborepo#10721)
- docs: rework llms.txt and add .md responses by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10811](vercel/turborepo#10811)
- docs: add `name` field mention to migration page by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10823](vercel/turborepo#10823)
- docs: update configuration reference to use correct turbo.json title by [@&#8203;xcfio](https://github.com/xcfio) in [#&#8203;10843](vercel/turborepo#10843)
- docs: correct description of how `^` works by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10865](vercel/turborepo#10865)

##### create-turbo

- feat(create-turbo): `--no-git` flag by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10720](vercel/turborepo#10720)
- chore(create-turbo): fix lint by [@&#8203;chris-olszewski](https://github.com/chris-olszewski) in [#&#8203;10807](vercel/turborepo#10807)
- fix(security): update dependencies to resolve warning for `node-plop` by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10847](vercel/turborepo#10847)

##### eslint

- docs: adjust typo on instructions for eslint-config-turbo legacy config by [@&#8203;evsasse](https://github.com/evsasse) in [#&#8203;10717](vercel/turborepo#10717)

##### [@&#8203;turbo/repository](https://github.com/turbo/repository)

- chore: reformat code with 2024 edition by [@&#8203;ognevny](https://github.com/ognevny) in [#&#8203;10775](vercel/turborepo#10775)

##### Examples

- chore(deps-dev): bump the with-svelte group in /examples/with-svelte with 6 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;10752](vercel/turborepo#10752)
- chore(deps-dev): bump turbo from 2.5.5 to 2.5.6 in /examples/with-shell-commands by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;10781](vercel/turborepo#10781)
- chore(deps-dev): bump [@&#8203;sveltejs/kit](https://github.com/sveltejs/kit) from 2.27.3 to 2.31.1 in /examples/with-svelte in the with-svelte group by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;10780](vercel/turborepo#10780)
- chore(deps-dev): bump [@&#8203;next/eslint-plugin-next](https://github.com/next/eslint-plugin-next) from 15.4.2 to 15.4.6 in /examples/with-tailwind by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;10779](vercel/turborepo#10779)
- chore(deps-dev): bump [@&#8203;next/eslint-plugin-next](https://github.com/next/eslint-plugin-next) from 15.4.2 to 15.4.6 in /examples/basic by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;10776](vercel/turborepo#10776)
- chore(deps): bump next from 15.4.2 to 15.4.6 in /examples/non-monorepo by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;10778](vercel/turborepo#10778)
- chore(deps-dev): bump the with-svelte group in /examples/with-svelte with 3 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;10787](vercel/turborepo#10787)
- chore(deps): bump the basic group in /examples/basic with 3 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;10788](vercel/turborepo#10788)
- fix: add types node to fix minimatch issue by [@&#8203;oliveirabalsa](https://github.com/oliveirabalsa) in [#&#8203;10730](vercel/turborepo#10730)
- chore(deps-dev): bump the basic group in /examples/basic with 2 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;10797](vercel/turborepo#10797)
- chore(deps-dev): bump the with-svelte group in /examples/with-svelte with 2 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;10800](vercel/turborepo#10800)

##### Changelog

- feat(turbo\_json): add `$TURBO_EXTENDS$` by [@&#8203;chris-olszewski](https://github.com/chris-olszewski) in [#&#8203;10763](vercel/turborepo#10763)
- chore(deps): bump the kitchen-sink group in /examples/kitchen-sink with 10 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;10758](vercel/turborepo#10758)
- chore: fix lints by [@&#8203;chris-olszewski](https://github.com/chris-olszewski) in [#&#8203;10786](vercel/turborepo#10786)
- docs: add top level crate documentation by [@&#8203;chris-olszewski](https://github.com/chris-olszewski) in [#&#8203;10801](vercel/turborepo#10801)
- docs: add more doc comments for working with the lockfile trait by [@&#8203;chris-olszewski](https://github.com/chris-olszewski) in [#&#8203;10802](vercel/turborepo#10802)
- fix(logs): create log files for non-cached tasks by [@&#8203;chris-olszewski](https://github.com/chris-olszewski) in [#&#8203;10806](vercel/turborepo#10806)
- ci: add packaging checks for some JS packages by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10810](vercel/turborepo#10810)
- docs: fix typos by [@&#8203;pauloZion1](https://github.com/pauloZion1) in [#&#8203;10821](vercel/turborepo#10821)
- feat(turbo\_json): allow for extending form non-root `turbo.json` by [@&#8203;chris-olszewski](https://github.com/chris-olszewski) in [#&#8203;10812](vercel/turborepo#10812)
- feat(tui): add shortcut for clearing task logs by [@&#8203;mcky](https://github.com/mcky) in [#&#8203;10828](vercel/turborepo#10828)
- chore: mention other package managers in bug report template by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10849](vercel/turborepo#10849)
- feat: add Expo to common frameworks by [@&#8203;Alvi24](https://github.com/Alvi24) in [#&#8203;10861](vercel/turborepo#10861)
- chore: remove label from workflows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10864](vercel/turborepo#10864)
- fix: add WINDIR to default passthroughs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10868](vercel/turborepo#10868)
- fix: output valid turbo.json for prune with Boundaries definition by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10866](vercel/turborepo#10866)
- fix: sanitize logging prefix for GitLab groups by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;10850](vercel/turborepo#10850)

#### New Contributors

- [@&#8203;oliveirabalsa](https://github.com/oliveirabalsa) made their first contribution in [#&#8203;10730](vercel/turborepo#10730)
- [@&#8203;vikhyathdevadiga](https://github.com/vikhyathdevadiga) made their first contribution in [#&#8203;10795](vercel/turborepo#10795)
- [@&#8203;AndrewDiMola](https://github.com/AndrewDiMola) made their first contribution in [#&#8203;10721](vercel/turborepo#10721)
- [@&#8203;pauloZion1](https://github.com/pauloZion1) made their first contribution in [#&#8203;10821](vercel/turborepo#10821)
- [@&#8203;mcky](https://github.com/mcky) made their first contribution in [#&#8203;10828](vercel/turborepo#10828)
- [@&#8203;xcfio](https://github.com/xcfio) made their first contribution in [#&#8203;10843](vercel/turborepo#10843)
- [@&#8203;evsasse](https://github.com/evsasse) made their first contribution in [#&#8203;10717](vercel/turborepo#10717)
- [@&#8203;Alvi24](https://github.com/Alvi24) made their first contribution in [#&#8203;10861](vercel/turborepo#10861)

**Full Changelog**: <vercel/turborepo@v2.5.6...v2.5.7>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDguNCIsInVwZGF0ZWRJblZlciI6IjQyLjEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Reviewed-on: https://git.in.csmpro.ru/csmpro/csm-mapban/pulls/30
Co-authored-by: Renovate Bot <renovate@csmpro.ru>
Co-committed-by: Renovate Bot <renovate@csmpro.ru>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants