Design: Show implicit dependencies in the job dependencies view in the pipeline graph
🧩 Problem
Based on https://gitlab.com/gitlab-org/ux-research/-/issues/1481 one of the main use cases for the job dependencies view in the pipeline graph is to optimize the pipeline. To effectively optimize your pipeline architecture to reduce the critical path/ pipeline duration, one needs to be aware of all the dependencies between job, implicit and explicit. Currently, we only show the explicit dependencies established by the needs
keyword.
For someone authoring and optimizing a pipeline, it's important to differentiate between the implicit and explicit dependencies so they can improve the pipeline architecture, for example they might see that there's a stage-based dependency somewhere and it'd be more efficient to replace it with needs
instead.
However, for a developer running a merge request pipeline, the job dependencies view serves a different purpose. In a needs
based pipeline, it allows them to see the trace of a job that failed and debug the problems more efficiently because they can check if something went in the preceding jobs. For them, there's no need to know whether a dependency is implicit and explicit, as long as they see that a dependency exists.
Proposal
Show implicit dependencies between jobs (established by stages rather than needs
).
We need to find a way to differentiate between the implicit and explicit links visually, but in a way that doesn't confuse or overwhelm developers who just want to view the graph to debug a job.