Replies: 2 comments 1 reply
-
|
found this. seem it server for web ui?? turborepo/crates/turborepo-ui/src/wui/mod.rs Lines 1 to 25 in afaa443 turborepo/turborepo-tests/integration/tests/turbo-help.t Lines 43 to 44 in afaa443 turborepo/crates/turborepo-lib/src/turbo_json/mod.rs Lines 109 to 110 in afaa443 |
Beta Was this translation helpful? Give feedback.
-
|
Quick gut reaction on "The UI could be a SPA with the files being served by the Turborepo CLI.": These assets can be a part of the rest of I'll give this more thought when I can. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Goals
Based on my package @yeger/turbo-graph, I'd like to outline a few requirements a native web UI for Turborepo should fullfil.
--filtersyntax to manipulate the task graph.Nice-to-haves
env,cache,inputs,outputs, etc.Non-goals
Background
I've implemented a hacky version of this already. IMO it's very useful for understanding task graphs and their execution order. While I have a lot of experience with Turborepo at this point, it's a tremendous help for onboarding colleagues to Turborepo.
My implementation uses dry runs (for graphs) and streaming UI mode (for logs) with a lot of hacky string checks to support both regular monorepos and single package repos. This is fragile and would quickly break if the log output format is changed even slightly.
Proposal
A native web UI should be available without installing a third-party package (even if it's mine 😉). I envision a new subcommand for the CLI that starts a server for the native UI and the required API. The dedicated API should provide the necessary data in a format designed for the UI, reducing computational overhead. More importantly, the API for streaming of logs during execution should also provide information about task state (finished, failed, etc), since this is not available from the streaming UI logs I'm currently using.
The UI could be a SPA with the files being served by the Turborepo CLI. It should have inputs for the filter, force flag, and task selection like my current implementation. A graph view can be implemented with React Flow. Input state should be synced to the URL, with an option to pre-configure this via the proposed Turborepo command.
I'd be happy to work on the UI part for this, but I don't have the necessary Rust background for the API part.
Beta Was this translation helpful? Give feedback.
All reactions