turbo
396bf454 - feat: port prune to rust (#5531)

Commit
2 years ago
feat: port prune to rust (#5531) ### Description Port prune from Go to Rust and remove the old Go implementation. To achieve this the following was done: - Parsing the lockfile during package graph construction - Porting utility functions - Some minor changes in `turborepo_paths`, these were primarily moving methods from their owned to borrowed counterparts - Expanding `package.json` parsing to grab some of the information pruning requires - Porting of the prune command itself. I added some additional structure compared to the Go version, but not enough that comparing it to the Go version should be difficult Notes for reviewers: I apologize that this PR ended up touching as much as it did. Reviewing the PR by commit should at least make all of the changes and their impacts obvious. Commits before `2d4154c` are already on main and can be skipped. ### Testing Instructions Existing unit tests and integration tests for file copying and package graph traversal. Actual lockfile behavior is mostly covered by unit tests that were ported when the lockfile were ported. Also did various manual testing with pruning monorepos. --------- Co-authored-by: Chris Olszewski <Chris Olszewski>
Parents
Loading