Project 03 / 05
Turborepo
I contribute to Turborepo's Rust core, mostly its cache and its support for Rust, Go and Python workspaces: cache hits you can trust, and hashes that follow exactly what changed.
Receipts
- Mergedvercel/turborepo #14448+183 −3Hash Clippy configuration for Cargo lint tasksEditing clippy.toml now reruns lint instead of replaying a stale pass from the cache.
- Mergedvercel/turborepo #14807+632 −128Restore cached symlinks when outputs are already on diskA cache hit leaves symlinks exactly as a fresh build would.
- Mergedvercel/turborepo #14656+233 −4Attribute Cargo.lock changes to the crates whose dependencies changed--affected reruns only the crates whose dependencies moved, not the whole workspace.
Focused on
Technical highlights
- Caching: improved local cache restores, symlinks included, so a cache hit leaves outputs exactly as a fresh build would.
- Change detection: task hashes and --affected follow the files and Cargo.lock entries that really changed, so fewer tasks rerun and none are skipped.
- Multi-language support: Rust, Go and Python workspaces hash their tool configuration (Clippy, ruff, pytest, uv) and keep it through turbo prune, part of Turborepo's move beyond JavaScript.
- Consistency: file hashing matches git's own text detection and pnpm 8 single-project lockfiles are understood, so the same repository hashes the same on every machine.