Time out on very large monorepo
TxHawks opened this issue · 1 comments
Hi,
This looks like a really nice project and something I've been looking for for quite a long time. Thanks for working on it.
To try and "stress test" it, so to speak, I tried running studio
on a rather huge monorepo of about 300 packages we have at at work, and it failed to start with the following error (with --verbose
):
⠹ Starting Commonality Studio...> Server listening at http://localhost:8888 as production
✖ Failed to start Commonality Studio
Error: Timed out waiting for: http://localhost:8888/graph
at /xxxx/.npm/_npx/2b5b33cd4a83cf06/node_modules/wait-on/lib/wait-on.js:131:31
at doInnerSub (/xxxx/.npm/_npx/2b5b33cd4a83cf06/node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js:22:31)
at outerNext (/xxxx/.npm/_npx/2b5b33cd4a83cf06/node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js:17:70)
at OperatorSubscriber._this._next (/xxxx/.npm/_npx/2b5b33cd4a83cf06/node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js:33:21)
at Subscriber.next (/xxxx/.npm/_npx/2b5b33cd4a83cf06/node_modules/rxjs/dist/cjs/internal/Subscriber.js:51:18)
at AsyncAction.<anonymous> (/xxxx/.npm/_npx/2b5b33cd4a83cf06/node_modules/rxjs/dist/cjs/internal/observable/timer.js:28:28)
at AsyncAction._execute (/xxxx/.npm/_npx/2b5b33cd4a83cf06/node_modules/rxjs/dist/cjs/internal/scheduler/AsyncAction.js:79:18)
at AsyncAction.execute (/xxxx/.npm/_npx/2b5b33cd4a83cf06/node_modules/rxjs/dist/cjs/internal/scheduler/AsyncAction.js:67:26)
at AsyncScheduler.flush (/xxxx/.npm/_npx/2b5b33cd4a83cf06/node_modules/rxjs/dist/cjs/internal/scheduler/AsyncScheduler.js:38:33)
at listOnTimeout (node:internal/timers:573:17)
Unfortunately, it's a private repository, so I can share for reproduction, but happy to follow up on any questions which could make this a more helpful bug report.
@TxHawks No worries at all! This is a known issue and I'm going to label this as a bug until it's resolved.
We're working on a way to collapse very large graphs now that will make navigation more performant. Showing the entire graph all at once also isn't helpful because there's just too much information. You can view this happening on the pnpm repo which has about 150 packages: https://studio.commonality.co/pnpm/pnpm
I'd love to hear your thoughts on how you'd ideally navigate an extremely large graph. Would you start at leaf nodes (applications), foundational packages (config), or maybe both and collapse everything in between while allowing you to selectively expand? All ideas are appreciated!