-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Visualizing workflow runs with an invocation graph view #17413
Visualizing workflow runs with an invocation graph view #17413
Conversation
I prefer format 1 for what it is worth - cool stuff. |
This comment was marked as resolved.
This comment was marked as resolved.
892e214
to
a64e496
Compare
a64e496
to
ffe6d81
Compare
WorkflowGraph
This comment was marked as resolved.
This comment was marked as resolved.
Backend/API changes:I needed to make a couple backend changes (commit) Modify backend schema for
|
class InvocationStepJobsResponseJobModel(InvocationJobsSummaryBaseModel): | |
model: JOB_MODEL_CLASS | |
id: EncodedDatabaseIdField = Field( | |
default=..., | |
title="ID", | |
description="The encoded ID of the job.", | |
) |
Without this change, api/invocations/{id}/step_jobs_summary
would return:
[
{"id":"bbd44e69cb8903b5d7e873ba2496d6ed18a479f3b9f872e5eafc6c082181535e01bd8561292ebce5","states":{"ok":1},"populated_state":"ok","model":"Job"},
{"id":"bad44e69cb8906b5d7e873da2496d6ed18a479f3b9f872e5f46ef54a25848cfca50b08d03c6f9af3","states":{"ok":1},"populated_state":"ok","model":"Job"}
]
and now it returns:
[
{"id":"03e4444245c62755","states":{"ok":1},"populated_state":"ok","model":"Job"},
{"id":"03691da0e97e69c2","states":{"ok":1},"populated_state":"ok","model":"Job"},
]
Add an implicit_collection_jobs_id
to InvocationStep
summary:
galaxy/client/src/api/schema/schema.ts
Lines 7468 to 7472 in ffe6d81
/** | |
* Implicit Collection Jobs ID | |
* @description The implicit collection job ID associated with the workflow invocation step. | |
*/ | |
implicit_collection_jobs_id?: string | null; |
because this then helps us store an invocation step's step_jobs_summary
in case an invocation step has stepJobSummary.model === "ImplicitCollectionJobs"
@ahmedhamidawan I don't think tying the canvas height to the steps is a good idea for several reasons: What happens if there are many steps? Does the canvas become very tall? This seems impractical. I'd rather give the canvas a fixed or adjustable height, independent of the steps. This feature looks very nice and useful btw! |
The "inner" canvas remains the same height it initially is.
Thank you @ElectronicBlueberry ! Comments show up exactly as/where they were in the original workflow:
|
ffe6d81
to
3249751
Compare
91a8b7b
to
a601310
Compare
This is amazing! Thanks a lot @ahmedhamidawan |
Failing test:
seems unrelated to these changes. Otherwise, this should be good to review |
Thank you for taking a look @ElectronicBlueberry !
Yes, that part bothered me too since in the existing
Yes, I am planning to
Ah yes, good spot. Fixing that.
Yes, it was the easiest way to keep the original structure without the labels since in this view we only care about showing the job state counts.
I think simply not showing the hover labels is fine |
@ElectronicBlueberry Any ideas on what should be changed; should there be more space in between them, should the steps appear somewhere else, should we put the steps in the side panel (activity for individual invocations 🤷♂️)...? |
I meant a drag handle to adjust the sizes dynamicaly |
Ooh nice, that's a good idea Update: Used the |
I have made the several changes recommended by @ElectronicBlueberry and discussed in the UI/UX meeting, and have updated the screenshots/casts in the main PR description.
|
This is to make the multiple scrollbars in `WorkflowInvocationOverview` to be clickable (one for the Steps and one for the whole tab)
Also, change the `href` for multiview in this view to a <router-link> (to prevent reload).
Also, do not show a separate input steps section if there is only one input step.
942a94c
to
20240cd
Compare
… steps if graph is collapsed, by removing the max-height
This is amazing @ahmedhamidawan! Awesome work. What I find a bit confusing is that the "steps-list" is sorted from top to bottom, the latest step at the bottom of the list. But in our histories, it is the reverse, the latest "step" / job at the top. This is especially notable when you have history and step-list side by side. |
Thank you @bgruening !!! |
I'm unsure about this. Top to bottom is the order that corresponds to the workflow run form, and I would argue that the run form has more correlation to the step list, than the step list to the history. The steps only happen to line up with the history if the history was empty before and the steps only output one dataset. Even then, the names often don't match up. I think flipping the step order in this view would be more confusing than beneficial. |
Co-authored-by: Laila Los <[email protected]>
Co-authored-by: Laila Los <[email protected]>
37716a4
to
23a0f0d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is so cool, I've been wanting something like this ever since I ran my first workflow on Galaxy!
977092f
to
2e53cb7
Compare
This adds a graph view to the workflow invocation summary, which utilizes the workflow editor canvas and original workflow structure, and instead of showing step details on each step node, it shows the job states for the steps. Clicking on a step expands the details for the invocation step.
The
useInvocationGraph
composable loads the graph onto the readonly editor based on the original workflow id and invocation object; and the step info is loaded via thestep_jobs_summary
api route.Sample Workflow Run:
invocation_graph_with_run_count.mp4
Invocation View Header:
This also adds a header with details about the invocation:
Older (alternative?) Implementation:
With a Card containing everything inline:
Hide and Show steps as needed:
To view multiple individual steps at the same time (without the graph getting in the way), users can hide/show steps like so:
hide_and_show_graph.mp4
Invocations List Change: Route to invocation instead of only expanding table rows
This change allows you to click an invocation workflow name and route to the dedicated full page (center-panel) summary for the invocation, while you can still expand it within the table by clicking on the expand details icon in the first column:
Before:
invocations_list_route_to_invocation_before.mp4
Now:
invocations_list_route_to_invocation_after.mp4
How to test the changes?
(Select all options that apply)
License