-
Notifications
You must be signed in to change notification settings - Fork 92
Workflow progress bar. #1510
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
base: master
Are you sure you want to change the base?
Workflow progress bar. #1510
Conversation
cf9df02
to
0f835ef
Compare
The code was nice and clean before I considered subworkflows.... now it is not so much - really getting into the weeds. I think I need to simulate multiple subworkflows evolving over time to keep testing this 😅. How to track what we consider a failure is already complex and needs to be a lot more complex - calling the whole thing a failure on a failed job is bad but I'm not sure how to fix it (first crack could be to disable that behavior if there is a single filter failed step anywhere in the workflow - still so wrong though). The display stuff is relatively clean compared to all that I think. The simple recursion the previous tracking did is also not ideal for this display because I think we should bounce around multiple subworkflows and show one at a time for a few seconds and the display of the parent workflow is slightly different than subworkflows. Here is a single workflow and one subworkflow - not from the tracking code just the display component in isolation with minimal synthetic API responses. planemoprogress.mov |
0cb2723
to
6a1fab2
Compare
I have rotating multiple subworkflow tracking and tracking subworkflows along with the primary workflow in "parallel" working. I had to implement a cool little invocation-evolution-over-time DSL - might be cool to use when implementing processing failure messages and such. I parameterized the display a bunch too so it should be easy to bike shed. workflowprogress2.mov |
Also... in dark mode and more traditional font size. workflowprogressindark.mov |
Wow, this is amazing, I think that'll make a huge difference in how usable the CLI is perceived to be. |
6a1fab2
to
290c698
Compare
Looks really nice! Tried it out today. One thing I thought of was that it would be nice if the copying of input files also are visualized, that part can take a lot of time. Would be nice if the log output to the terminal is turned of and that we could turn it on when needed, logs can still be found at |
Can't use classvars for a lot of the stuff, those are essentially globals. Fixes the tests.
Think we still have some work to do once there are failing jobs.
`--no-early-termination` is the current behavior. `--fail-fast` could be an option to implement.
a95640f
to
a255fcd
Compare
a255fcd
to
1eeb3a0
Compare
rich also lets us create clickable links (b156755): ![]() |
f6c7c54
to
06e415f
Compare
06e415f
to
4a2fc83
Compare
Talked about for Galaxy Live! A progress bar would be more useful than the Galaxy logs for running workflows.
This PR is just in early stages but I wanted to have a PR to track progress and get feedback. My approach is develop the progress bar in the abstract with synthetic API responses, create a Planemo command "workflow_track" that can just be attached to existing invocations like "planemo workflow_test_on_invocation" at runtime, and then once it seems to work replace the wait function
_wait_for_invocation_jobs
in planemo.galaxy.activity with the progress bar. "planemo workflow_track" could be used to test how workflow errors render also.The implementation I have so far is using Rich (https://rich.readthedocs.io/en/latest/style.html). It seems a bit more full featured than click's builtin component and less opinionated than tqdm.