GSoC 2022 @ RTEMS, Midterm Evaluation

The first part of my GSoC participation for summer 2022 is coming to an end. At the end of this period, I would like to thank my mentors as well as other members of the RTEMS developer and user community for their continuous help and engagement. In this blog post, I will discuss the state of my project, the new RTEMS release notes generator.

Initially, the goals and deliverables for the midterm evaluation were the following, and for the most part, each of those goals has been tackled and resolved:

  • Fix major style problems with the current release notes generator (PDF pagination problems, relative dates, hard line-wrapping policy, support Unicode, and use a more modern set of styles)
  • Port different parts of the generator to Python 3 exclusively
  • Explore and fix performance problems in the current release notes generator
  • Generate functional Markdown, convert to HTML and produce PDF release notes files

Performance analysis and characterization of the release notes generator have been done and we figured out that it was bottlenecked by fetching the data from Trac before starting to process it and generate a suitable, printable format. This problem could be solved in the future by employing a more clever, scrapping-based method of fetching the ticket data instead of relying on the Trac API.

Also, style problems have been tackled and a well-looking PDF file can now be generated automatically using the new release notes generator. However, generating printable PDF from a format not designed for printability in mind initially is a fundamental problem that no may still produce pagination problems even with lots of tweaks and hacks. Hence, for the second part of my GSoC participation, we plan to develop the code sufficient to automatically generate a more print-friendly format, reStructuredText.

Currently, the generator is capable of producing a notes file in two flavors of styles; Trac-based styles, and a plain set of styles that mimic rendered GitHub Markdown styles.

Two sample generations of the 4.11.3 milestone can be accessed here.

The repository of the new release notes generator can be accessed here.