dotnet / source-build

A repository to track efforts to produce a source tarball of the .NET Core SDK and all its components
MIT License
266 stars 132 forks source link

Generate HTML Output for Prebuilt Reports #4630

Open ellahathaway opened 6 days ago

ellahathaway commented 6 days ago

This was the project that I worked on during Hackathon week 2024. I was unable to finish this project by the end of the week, so I've written up this issue in case someone would like to pick it up in the future. I've also included a tarball of the source-code thus far and a tarball of example html output that I rendered with the prebuilt report from this issue (html report contains internal Microsoft links)

Motivation

Currently, the prebuilt usage reports are .xml files generated by the prebuilt detection in the Arcade infrastructure. These .xml files include a list of sources (src/arcade, src/sdk, src, etc), and a list of prebuilt packages. The list of prebuilt packages typically include the following info for each package: the name of the package, the version of the package, a file path to the project.assets.json file, and information on if the package is a direct dependency or a transitive dependency.

While this .xml file contains a lot of information, it requires that the reader has knowledge on how navigate the source repo, read a project.assets.json file, and understand transitive vs direct dependencies. Furthermore, when a prebuilt is detected in a build, a user must understand how to obtain the prebuilt-usage report and the associated project.assets.json file from the build. The user may also have to track down the project file in the source code, which can be a time consuming process if the user is not familiar with the repo.

Goal

Given the difficulties involved with our current prebuilt usage report, I wanted to create a user-friendly rendering of the report so that all of the information needed to diagnose a prebuilt exists in a single place; users would not have to download multiple files or search the codebase in repos to diagnose prebuilts.

Accomplishments so far

Work to do

arcade-hackathon.zip output-html.zip

ellahathaway commented 5 days ago

Another option for this is instead of HTML to render markdown. Markdown could be good for opening issues.