Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Dec 28, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

## Summary

Extracts the `gitignore` module from `turborepo-lib` into its own
`turborepo-gitignore` crate.

- Creates new `crates/turborepo-gitignore/` with the
`ensure_turbo_is_gitignored()` function
- Updates `turborepo-lib` to depend on the new crate
- Removes the internal `gitignore` module from `turborepo-lib`

This continues the effort to modularize `turborepo-lib` by extracting
self-contained functionality into standalone crates.

## Testing

- `cargo check -p turborepo-gitignore` ✅
- `cargo check -p turborepo-lib` ✅  
- `cargo test -p turborepo-gitignore` ✅ (5 tests pass)
…11318)

## Summary

Extract the self-contained `rewrite_json` module into its own crate as
part of the ongoing `turborepo-lib` modularization effort.

- Create new `turborepo-json-rewrite` crate with `jsonc-parser`
dependency
- Re-export from `turborepo-lib` to preserve existing internal usages
- All 14 existing tests pass

## Details

This module provides JSON document mutation utilities (`set_path`,
`unset_path`) used for modifying `turbo.json` configuration files. It
has **zero internal dependencies**, making it an ideal first extraction
candidate.

The re-export pattern (`pub use turborepo_json_rewrite as
rewrite_json;`) ensures all existing internal usages continue to work
without modification.

## Test Plan

- `cargo check -p turborepo-json-rewrite -p turborepo-lib` ✅
- `cargo test -p turborepo-json-rewrite` ✅ (14 tests pass)
…rborepo-lib` (#11319)

## Summary

Continues the modularization of `turborepo-lib` by extracting the
`hash/` module into a standalone `turborepo-hash` crate. Also introduces
`turborepo-types` as a foundation crate for shared types.

### New Crates

- **`turborepo-types`**: A foundation layer crate containing shared
types (`EnvMode`, `TaskOutputs`) that are used across multiple crates.
This prevents circular dependencies during future extractions.

- **`turborepo-hash`**: Contains all hashing functionality using Cap'n
Proto for deterministic serialization across languages/platforms, plus
xxHash64 for fast hashing.

### Verification

- All 559 tests pass (545 `turborepo-lib` + 11 `turborepo-hash` + 3
`turborepo-types`)
- Hash values are identical (verified via hardcoded test assertions)
- `proto.capnp` and `traits.rs` are byte-for-byte identical
- Type definitions preserve all derives and serde attributes
## Summary

- Extract the `shim/` module from `turborepo-lib` into a standalone
`turborepo-shim` crate
- Use trait-based dependency injection to decouple shim logic from
turborepo-lib internals
- Maintain full backward compatibility via re-exports in
`turborepo-lib/src/shim.rs`

## Details

This PR continues the modularization effort by extracting the shim
module, which handles:
- CLI argument parsing (`ShimArgs`)
- Local turbo binary detection (`LocalTurboState`)
- Turbo version detection from lockfiles (`LocalTurboConfig`)
- Platform-specific turbo state helpers
@pull pull bot locked and limited conversation to collaborators Dec 28, 2025
@pull pull bot added the ⤵️ pull label Dec 28, 2025
@pull pull bot merged commit 35ed879 into zys-contrib:main Dec 28, 2025
4 of 11 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant