[dvsim] Assemble report data in one principal representation and generate all outputs from it
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
_From https://github.com/lowRISC/opentitan/issues/17174#issuecomment-1409154781_:
>> Would it be easier if we use or implement a generic html to json converter function/package? Then that would be used for all tools within dvsim to generate html and json package?
>>
>> Or for future improvement, maybe we could gather the complete results in MD format first, then have two converters: 1). MD -> HTML 2). MD-> JSON
>
> Thanks for this suggestion. I agree that it would be best to assemble one report in a canonical representation and then generate the different mark-ups (or mark-downs, heh) from it. I think it would make most sense to have a Python `dict` (a collection of key-value pairs) as canonical representation of the report. Converting that to a JSON string is trivial, we could serialize and archive it for long-term regression analyses, and it could be combined with a template file to produce a Markdown file (which could then be converted to HTML as we do now).
Contributor guide
Research direction
Start by locating dvsim's existing report-generation entry points and the code that produces HTML, JSON, and Markdown outputs. Trace how report data is assembled today, then define the canonical Python dict and verify that each output is generated from it while preserving the existing report information.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100