5 of 6 standards met
Summary Fixes corrupting entries for and protocol dependencies by writing them as 4-element npm-style arrays instead of their correct 2-element format Closes #11701 Root Cause in the bun lockfile encoder only had special handling for workspace packages (2-element) and git/github packages (3-element). Everything else fell through to the npm registry path which unconditionally writes 4-element arrays . For , , and packages — which should be 2-element arrays — this inserted empty strings for the missing and fields, producing entries like: This caused to fail with on pruned lockfiles. Testing To verify the fix, a reviewer can: 1. Run — all 67 tests pass, including the two new regression tests ( and ) 2. The fixture exercises the full prune + frozen-install flow with a dependency
Summary Removes the "Build turbo binary" step from the Ubuntu coverage job (). Why already builds all targets, including the binary, with coverage instrumentation into . The separate step was building an uninstrumented binary into that was never used — resolves the binary path relative to the test executable's location, so it always finds the instrumented one. This was a full compilation of and its dependency tree happening 10 times (once per partition) for no reason. The macOS/Windows test jobs already work without a separate build step, confirming it's unnecessary.
Repository: vercel/turborepo. Description: Build system optimized for JavaScript and TypeScript, written in Rust Stars: 29904, Forks: 2270. Primary language: Rust. Languages: Rust (65.5%), TypeScript (22.3%), MDX (10.5%), JavaScript (1%), CSS (0.5%). License: MIT. Homepage: https://turborepo.dev Topics: build-system, build-tool, javascript, monorepo, typescript. Latest release: v2.8.12 (1d ago). Open PRs: 27, open issues: 118. Last activity: just now. Community health: 100%. Top contributors: sokra, anthonyshew, jaredpalmer, chris-olszewski, github-actions[bot], mehulkar, tknickman, NicholasLYang, nathanhammond, kdy1 and others.
Rust
Last 12 weeks · 644 commits
Summary Two sets of improvements to the Rust integration test suite. Shared helper refactoring (commit 1) Adds , , and to — single source of truth for turbo binary configuration, git operations, and output merging Migrates 10+ test files from local command builders to shared Eliminates duplicate from and Refactors macro to use internally Renames -> , removes unnecessary wrappers Fixes duplicate doc comments in Test quality improvements (commit 2) Removes brittle hardcoded hashes* from , , . Tests now assert on hash relationships (changed/unchanged) rather than exact hex values. Any hash algorithm change no longer requires updating magic constants. Eliminates in by sorting summaries by cached count instead of relying on ksuid timestamp ordering. This was a classic flake source. Reduces from 10,000 files to 100. The test proves filenames with spaces are handled correctly — it doesn't need to stress-test I/O. Adds meaningful assertion* to (was only checking exit code). Migrates remaining inline git commands in to shared . 22 files changed, ~250 lines removed.
Summary Excludes and from all and runs in CI. Why Both crates are leaf nodes with zero reverse dependencies — nothing in the workspace depends on them. They have no tests we care about exercising in the main test workflow, but they were being compiled on every run because the workspace glob catches them. is particularly expensive because it depends on , which pulls in ~30 transitive workspace crates. It compiles dead last in the dependency graph and contributes nothing to test coverage. Lint and still cover both crates. Testing The change is purely additive flags on existing CI commands. Existing tests are unaffected since these crates had no meaningful test coverage being exercised.