Skip to content
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

Buildinfo UI - initial design and first iteration #9

Closed

Conversation

ncounter
Copy link

openSUSE#11694

Initial rendering of all the build-info available at _buildinfo?debug=1 route.
Everything is computed and rendered after parsing the raw data served at that route.

This PR presents the data sliced by the following criteria:

  • a summary box wrapping relevant but high level information about the build, including the message error
  • a projects box listing all the projects used for the build, with an expand/collapse toggle of the list of the packages fetched from each project
  • a dependency relationship box presenting the who-requires-what-from where connection
  • the raw data still available at the end of the page for a deeper debugging matter

The data are normalized and manipulated from the buildinfo.js (for the sake of this exercise), as they are already available in the content of the HTML. If this initial iteration will have a follow-up or a spin-off, we should first start thinking about providing data in a different shape on the backend side, and evaluating about serving the data maybe async or even in a lazy-lading behavior for the different pieces.

Short-term: the dependency relationship table could optionally be represented as a tree starting from the direct dependency triggered by the spec file, and indenting by levels of requirements the dependencies. A robust decoding of the names is required for that, as of now the debug build info comes in the shape of:

added perl-Regexp-Common@openSUSE.org:SUSE:SLE-15:GA/pool because of (direct):perl(Regexp::Common)
added glibc@openSUSE.org:SUSE:SLE-15-SP3:GA/pool because of perl:libc.so.6()(64bit)

At the moment the reverse logic is computed and in the page we have the data in the shape of:

(direct):perl(Regexp::Common) requires perl-Regexp-Common from openSUSE.org:SUSE:SLE-15:GA/pool
perl:libc.so.6()(64bit) requires glibc openSUSE.org:SUSE:SLE-15-SP3:GA/pool

Here (direct): stands for it is a direct requirement triggered from the spec file, perl: instead means an intermediate dependency is occurring: perl --> libc.so6()(64bit) --> glibc, something that could be represented as a tree:

perl
   |___libc.so6()(64bit)
             |___ glibc

Long-term: due to the fact dependencies cannot be purely represented as a tree (even if it could already be a valuable representation) but it is more like a graph, an additional d3.js implementation could be a very nice to have, something like https://www.jasondavies.com/d3-dependencies/

Below some screenshot:

  • Before: only the raw data
  • After:

Summary
build-info-1

Expanded project sources
build-info-2

Dependency relationship
build-info-3

Accessible raw data
build-info-4

src/api/app/assets/javascripts/webui/buildinfo.js Outdated Show resolved Hide resolved
src/api/app/assets/javascripts/webui/buildinfo.js Outdated Show resolved Hide resolved
src/api/app/assets/javascripts/webui/buildinfo.js Outdated Show resolved Hide resolved
src/api/app/assets/javascripts/webui/buildinfo.js Outdated Show resolved Hide resolved
src/api/app/assets/javascripts/webui/buildinfo.js Outdated Show resolved Hide resolved
src/api/app/assets/javascripts/webui/buildinfo.js Outdated Show resolved Hide resolved
src/api/app/assets/javascripts/webui/buildinfo.js Outdated Show resolved Hide resolved
src/api/app/assets/javascripts/webui/buildinfo.js Outdated Show resolved Hide resolved
src/api/app/assets/javascripts/webui/buildinfo.js Outdated Show resolved Hide resolved
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
Repository owner deleted a comment from houndci-bot Jun 13, 2022
@hennevogel hennevogel deleted the branch hennevogel:feature/buildinfo-ui June 27, 2024 12:06
@hennevogel hennevogel closed this Jun 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
3 participants