Skip to content

better step display in build system web interface #24653

@mlugg

Description

@mlugg

Split from #24588.

The build system web interface shows the steps in the build graph as a flat list, in the order generated by the build runner (which is a reverse-topological ordering, i.e. each step appears before all of its dependencies). It would be much clearer and more useful to show it as as a tree, like in the zig build --summary all output.

Because the web interface allows us to make interactive UI elements, steps which appear in multiple places in the graph (i.e. which have multiple steps depending on them) should not just be marked as "repeated" after the first one: all occurrences should look the same, with some kind of expand/collapse system to avoid the tree being too large on-screen. Aside from that, I'm not entirely sure what this feature looks like -- if you work on this, feel free to experiment to see what works best.

This will require sending the step dependency information from the build runner to web clients, as that information is not currently provided, and is of course necessary for rendering steps in a tree.

Another important enhancement is to only have one list (or, per the above, tree) of steps in the UI, and to make all per-step information accessible from that part of the interface. In particular, the interface for --time-report should not create its own separate list of build steps in the web interface -- rather, the time report should be somehow accessible by clicking on the step in the main tree. This also applies to viewing fuzz test information, but the fuzzer currently doesn't really have any support for multiple build steps (see #24652).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementSolving this issue will likely involve adding new logic or components to the codebase.zig build systemstd.Build, the build runner, `zig build` subcommand, package management

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions