Skip to content

refactor: Migrate persistent-dependencies and task-dependencies to Rust + insta#12012

Merged
anthonyshew merged 2 commits into
mainfrom
shew/migrate-persistent-task-deps
Feb 26, 2026
Merged

refactor: Migrate persistent-dependencies and task-dependencies to Rust + insta#12012
anthonyshew merged 2 commits into
mainfrom
shew/migrate-persistent-task-deps

Conversation

@anthonyshew

Copy link
Copy Markdown
Contributor

Summary

  • Converts all 10 persistent-dependencies/ and 5 task-dependencies/ prysk tests to pure Rust
  • Prysk test count drops from 145 to 130
  • Adds shared run_turbo() and turbo_output_filters() helpers to common/mod.rs

Test mapping

persistent-dependencies (10 tests → 15 Rust tests)

Old .t file Rust test(s) Pattern
1-topological through 9-cross-workspace-nested (8 files) test_1_topological through test_9_cross_workspace_nested Error snapshot on stderr
6-topological-unimplemented test_6_topological_unimplemented Success stdout snapshot with time filter
10-too-many 6 tests: test_10_too_many_concurrency_{1,2,3}_{flag,env} Concurrency errors via --concurrency flag and TURBO_CONCURRENCY env var

task-dependencies (5 tests → 14 Rust tests)

Old .t file Rust test(s) Pattern
complex 6 tests: graph snapshots for build1/test/test--only, error assertions for build2/build3/build4 Mix of snapshot and assert!(contains)
topological test_topological_run + test_topological_graph Stdout snapshot + graph snapshot
root-workspace test_root_workspace Stdout snapshot
overwriting test_overwriting Presence/absence assertions via assert!
workspace-tasks 4 tests: build1/build2/special graph snapshots + build3 error assertion Mix

All turbo-produced hashes are pinned exactly in snapshots. Only the timing line (Time: ...) is filtered. No redactions on hashes, error messages, or graph structure.

How to verify

cargo nextest run --test persistent_dependencies --test task_dependencies -p turbo

@anthonyshew anthonyshew requested a review from a team as a code owner February 26, 2026 19:09
@anthonyshew anthonyshew requested review from tknickman and removed request for a team February 26, 2026 19:09
@vercel

vercel Bot commented Feb 26, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
examples-basic-web Ready Ready Preview, Comment, Open in v0 Feb 26, 2026 7:40pm
examples-designsystem-docs Ready Ready Preview, Comment, Open in v0 Feb 26, 2026 7:40pm
examples-gatsby-web Ready Ready Preview, Comment, Open in v0 Feb 26, 2026 7:40pm
examples-kitchensink-blog Ready Ready Preview, Comment, Open in v0 Feb 26, 2026 7:40pm
examples-nonmonorepo Ready Ready Preview, Comment, Open in v0 Feb 26, 2026 7:40pm
examples-svelte-web Ready Ready Preview, Comment, Open in v0 Feb 26, 2026 7:40pm
examples-tailwind-web Ready Ready Preview, Comment, Open in v0 Feb 26, 2026 7:40pm
examples-vite-web Ready Ready Preview, Comment, Open in v0 Feb 26, 2026 7:40pm
turbo-site Ready Ready Preview, Comment, Open in v0 Feb 26, 2026 7:40pm
turborepo-agents Ready Ready Preview, Comment, Open in v0 Feb 26, 2026 7:40pm
turborepo-test-coverage Ready Ready Preview, Comment, Open in v0 Feb 26, 2026 7:40pm

…st + insta

Convert all 10 persistent-dependencies and 5 task-dependencies prysk
tests to pure Rust integration tests. Prysk count drops from 145 to
130.

Also adds shared helpers to common/mod.rs (run_turbo, turbo_output_filters)
for use by all integration test files.
The run_turbo helper, check_json_output macro, and all custom
Command invocations in dry_json.rs and persistent_dependencies.rs
need to strip CI and GITHUB_ACTIONS to prevent turbo from outputting
::group:: markers on GitHub Actions runners.
@anthonyshew

Copy link
Copy Markdown
Contributor Author

The failing test is a flake. Safe to merge.

@anthonyshew anthonyshew merged commit 9aab7b5 into main Feb 26, 2026
52 of 54 checks passed
@anthonyshew anthonyshew deleted the shew/migrate-persistent-task-deps branch February 26, 2026 19:55
github-actions Bot added a commit that referenced this pull request Feb 27, 2026
## Release v2.8.12-canary.3

Versioned docs: https://v2-8-12-canary-3.turborepo.dev

### Changes

- fix: Prevent peerDependencies from overwriting concrete dependency
specifiers (#12004) (`a038409`)
- ci: Trigger prysk integration tests via `cargo nextest` (#11999)
(`2053ede`)
- release(turborepo): 2.8.12-canary.2 (#12005) (`dccfdf0`)
- fix: Resolve correct nested package version in bun lockfile pruning
(#12008) (`95dff45`)
- refactor: Replace shell-based fixture setup with pure Rust (#12006)
(`a743e38`)
- fix: Resolve all lockfile pruning test failures (#12009) (`21dcaed`)
- perf: Extract query module into turborepo-query crate (#12007)
(`0604379`)
- refactor: Migrate dry-json prysk tests to Rust + insta snapshots
(#12010) (`2606f3f`)
- perf: Deduplicate petgraph, fixedbitset, and dashmap (#12011)
(`9b11ef6`)
- refactor: Migrate persistent-dependencies and task-dependencies to
Rust + insta (#12012) (`9aab7b5`)
- test: Add lockfile-tests fixture for issue #12013 (#12014) (`bae81f7`)
- perf: Remove libgit2/git2 dependency, replace with gix-object (#12015)
(`fbf50e5`)
- refactor: Migrate daemon, jsonc, query, edit-turbo-json tests to Rust
(#12016) (`bf730d5`)
- perf: Remove async-graphql from turborepo-lib (#12017) (`7c8a4a0`)
- refactor: Migrate inference and run-logging tests to Rust (#12018)
(`dc4f922`)
- refactor: Migrate run-caching and strict-env-vars tests to Rust
(#12020) (`c07645d`)
- fix: Mark lockfile-aware-caching/bun prysk test as flaky (#12021)
(`c60f0c1`)
- fix: Add nextest retries for flaky tests (#12027) (`9d90270`)
- refactor: Migrate prune and run-summary tests to Rust (#12022)
(`329bdb5`)
- ci: Increase Rust test partitions from 4 to 10 (#12028) (`0c1bd47`)
- fix: Add nextest retries for flaky prysk tests (#12030) (`9b66431`)
- ci: Use larger runners for macOS Rust tests (#12029) (`9479a54`)
- fix: Add nextest retries for flaky
prune_test::test_prune_composable_config (#12032) (`b47e099`)
- fix: Suppress npm upgrade notices in Rust integration tests (#12033)
(`f698b04`)
- ci: Disable flaky Rust unit tests from release pipeline (#12034)
(`829b351`)

---------

Co-authored-by: Turbobot <turbobot@vercel.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.

1 participant