Skip to content

feat: Support nub.lock files - #13699

Merged
anthonyshew merged 1 commit into
vercel:mainfrom
akshat-OwO:agent/support-nub-lock
Aug 10, 2026
Merged

anthonyshew merged 1 commit into
vercel:mainfrom
akshat-OwO:agent/support-nub-lock

Conversation

@akshat-OwO

Copy link
Copy Markdown
Contributor

Why

Nub 0.6 writes its pnpm v9-compatible lockfile as nub.lock, but Turborepo only recognized Nub's legacy lock.yaml name. As a result, Turbo fell back to npm and warned that package-lock.json could not be found.

Fixes #13698.

What

  • recognize nub.lock as Nub's current native lockfile while retaining lock.yaml compatibility
  • use the selected native lockfile for parsing, path resolution, and watcher invalidation
  • keep native lockfile precedence specific to Nub and Aube when both wrapper lockfiles are present
  • update @turbo/workspaces lockfile reporting and add current, legacy, and mixed-lockfile regression coverage

Impact

Nub 0.6 workspaces can run Turbo without the misleading missing package-lock.json warning. Existing Nub projects using lock.yaml or another supported underlying package-manager lockfile continue to work.

Testing

  • cargo test -p turborepo-repository -p turborepo-filewatch -p turborepo-devtools
  • pnpm --filter @turbo/workspaces exec jest --runInBand --silent (990 tests)
  • cargo fmt --all --check
  • targeted oxfmt and oxlint --deny-warnings
  • cargo build -p turbo
  • manual turbo run build --dry=json --skip-infer against the lazydiff reproduction
  • repository pre-push formatting and TOML checks

cargo lint was also attempted and reached an existing macOS-only clippy::too_many_arguments error in crates/turborepo-filewatch/src/lib.rs:1633, outside this patch.

@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

@akshat-OwO is attempting to deploy a commit to the Vercel Team on Vercel.

A member of the Team first needs to authorize it.

@akshat-OwO
akshat-OwO marked this pull request as ready for review August 8, 2026 10:18
@akshat-OwO
akshat-OwO requested review from a team and tknickman August 8, 2026 10:18

@anthonyshew anthonyshew left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks right, thank you!

@anthonyshew anthonyshew changed the title fix: Support nub.lock files feat: Support nub.lock files Aug 10, 2026
@anthonyshew
anthonyshew merged commit 4740bac into vercel:main Aug 10, 2026
45 of 54 checks passed
anthonyshew pushed a commit that referenced this pull request Aug 10, 2026
## Release v2.10.10-canary.1

> [!CAUTION]
> Versioned docs aliasing FAILED. [View
logs](https://github.com/vercel/turborepo/actions/runs/31425213925)

### Changes

- test: Cover Python quality task graph (#13675) (`09bd548`)
- chore: Release Turborepo 2.10.9-canary.1 (#13687) (`c09a92f`)
- docs: Document dependency-driven Python tasks (#13676) (`a98e5cd`)
- fix: Prune Bun wildcard workspace dev dependencies (#13694)
(`efe4e1b`)
- fix: Prevent Windows process cleanup PID reuse (#13695) (`3b0e57f`)
- chore: Release Turborepo 2.10.9 (#13696) (`c21e2e2`)
- docs: Update Geistdocs to 1.19.6 (#13701) (`9bbc2c8`)
- feat: Support nub.lock files (#13699) (`4740bac`)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
anthonyshew pushed a commit that referenced this pull request Aug 14, 2026
## Release v2.10.10

> [!CAUTION]
> Versioned docs aliasing FAILED. [View
logs](https://github.com/vercel/turborepo/actions/runs/31803665773)

### Changes

- chore: Release Turborepo 2.10.9 (#13696) (`c21e2e2`)
- docs: Update Geistdocs to 1.19.6 (#13701) (`9bbc2c8`)
- feat: Support nub.lock files (#13699) (`4740bac`)
- chore: Release Turborepo 2.10.10-canary.1 (#13703) (`44c6fd6`)
- perf: Walk the repository once when pruning (#13705) (`c59a533`)
- fix(deps): Upgrade js-yaml to 4.3.1 (GHSA-5p4m-2wfm-xmqj) (#13704)
(`f12c6e9`)
- chore: Move pnpm overrides to pnpm-workspace.yaml (#13706) (`1475441`)
- chore: Release Turborepo 2.10.10-canary.2 (#13707) (`c72285f`)
- fix: Enable Eve examples pull requests (#13708) (`4e57b15`)
- feat: Add Eve operator dashboard (#13710) (`96b9647`)
- fix: Remove unsupported sandbox network policy (#13712) (`688614d`)
- feat: Rotate Eve example maintenance daily (#13715) (`ec56a7f`)
- fix: Resolve agent lint errors (#13716) (`bb535e9`)
- chore: Upgrade TypeScript to 7.0.2 (#13713) (`2afa75d`)
- fix(cli): Move EXPERIMENTAL label from ls command to --output flag
(#13709) (`422ba28`)
- fix: Apply nested parent gitignore patterns in manual hashing (#13690)
(`2b8863c`)
- feat: Add pytest task discovery (#13720) (`24e07a7`)
- chore: Release Turborepo 2.10.10-canary.3 (#13721) (`bb46749`)
- chore: Validate updated examples with turbo (#13723) (`ad53149`)
- chore: Update with-rollup example (#13718) (`42ec389`)
- feat: Notify Slack when agents open PRs (#13722) (`aa070b1`)
- chore: Enforce draft pull requests (#13726) (`6a46551`)
- fix: Expose Slack delivery diagnostics (#13733) (`caddaa9`)
- chore: Update non-monorepo example (#13727) (`0bfd752`)
- chore: Update with-rsbuild example (#13730) (`e0aee94`)
- feat: Add daily performance agent (#13729) (`c4ac03b`)
- feat: Support cross-toolchain repository affectedness (#13737)
(`31b0c4f`)
- fix: Scope musl library dependency installation (#13738) (`1da105f`)
- chore: Release Turbo repository packages 0.0.1-canary.24 (#13739)
(`65aa565`)
- fix(bun): Preserve overrides objects, trustedDependencies, workspace
bins and git integrity through prune; accept lockfileVersion 3 (#13740)
(`ea08fac`)

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Turborepo looks for package-lock.json instead of nub.lock in Nub workspaces

2 participants