-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Validate graphs before execution #336
Conversation
This pull request is being automatically deployed with Vercel (learn more). 🔍 Inspect: https://vercel.com/vercel/turbo-site/CBnK6CEQ4tEJPcMjhBGwvoiTEaqv |
@jaredpalmer Hi Jared. Can we ignore cyclic graph in peerDeps and only validate for deps and devDeps ? Currently it hungs up the process even when peerDeps have circular dependency. |
Tried adopting turbo on MikroORM monorepo, and I believe I got the exact same issue, only one package that has no dependencies at all gets built, then it gets stuck. Currently using lerna with yarn workspaces and that builds just fine. |
Will revisit after #887 |
### turbo tracing in pnpm projects How pnpm link packages:  After turbo tracing: ``` dist ├── crates │ └── turbopack │ └── tests │ └── node-file-trace │ ├── integration │ └── node_modules │ └── better-sqlite3 -> ../../../../../node_modules/.pnpm/better-sqlite3@7.6.2/node_modules/better-sqlite3 └── node_modules └── .pnpm ├── better-sqlite3@7.6.2 │ └── node_modules │ ├── better-sqlite3 │ │ ├── build │ │ │ └── Release │ │ └── lib │ │ └── methods │ └── bindings -> ../../bindings@1.5.0/node_modules/bindings ├── bindings@1.5.0 │ └── node_modules │ ├── bindings │ └── file-uri-to-path -> ../../file-uri-to-path@1.0.0/node_modules/file-uri-to-path └── file-uri-to-path@1.0.0 └── node_modules └── file-uri-to-path ``` No more **global .pnpm store**. The directory link will follow the original path created by pnpm.
### turbo tracing in pnpm projects How pnpm link packages:  After turbo tracing: ``` dist ├── crates │ └── turbopack │ └── tests │ └── node-file-trace │ ├── integration │ └── node_modules │ └── better-sqlite3 -> ../../../../../node_modules/.pnpm/better-sqlite3@7.6.2/node_modules/better-sqlite3 └── node_modules └── .pnpm ├── better-sqlite3@7.6.2 │ └── node_modules │ ├── better-sqlite3 │ │ ├── build │ │ │ └── Release │ │ └── lib │ │ └── methods │ └── bindings -> ../../bindings@1.5.0/node_modules/bindings ├── bindings@1.5.0 │ └── node_modules │ ├── bindings │ └── file-uri-to-path -> ../../file-uri-to-path@1.0.0/node_modules/file-uri-to-path └── file-uri-to-path@1.0.0 └── node_modules └── file-uri-to-path ``` No more **global .pnpm store**. The directory link will follow the original path created by pnpm.
### turbo tracing in pnpm projects How pnpm link packages:  After turbo tracing: ``` dist ├── crates │ └── turbopack │ └── tests │ └── node-file-trace │ ├── integration │ └── node_modules │ └── better-sqlite3 -> ../../../../../node_modules/.pnpm/better-sqlite3@7.6.2/node_modules/better-sqlite3 └── node_modules └── .pnpm ├── better-sqlite3@7.6.2 │ └── node_modules │ ├── better-sqlite3 │ │ ├── build │ │ │ └── Release │ │ └── lib │ │ └── methods │ └── bindings -> ../../bindings@1.5.0/node_modules/bindings ├── bindings@1.5.0 │ └── node_modules │ ├── bindings │ └── file-uri-to-path -> ../../file-uri-to-path@1.0.0/node_modules/file-uri-to-path └── file-uri-to-path@1.0.0 └── node_modules └── file-uri-to-path ``` No more **global .pnpm store**. The directory link will follow the original path created by pnpm.
Fix #262
In order to leverage our Dag library's existing Cycle detection, we also actually need to reverse the direction of edge connections and possibly the walk direction