Development and Quality Assurance: TDF’s Annual Report 2022

Annual Report banner

In 2022, 11,769 commits were made to the LibreOffice source code, from 218 authors, in 10 repositories. We also took part in the Google Summer of Code, to support student developers

(This is part of The Document Foundation’s Annual Report for 2022 – we’ll post the full version here soon.)

Infrastructure for developers

TDF provides infrastructure for the developer community to continue their work on LibreOffice. These include Git and Gerrit, to make changes to the source code, along with Bugzilla (to track bug reports and enhancement requests), a wiki (to document changes), and Weblate (for translations).

Most technical discussions took place on the developer mailing list and IRC channel, with the latter providing more real-time communication. Members of the Engineering Steering Committee met weekly, to discuss the most pressing issues with the codebase.

Google Summer of Code (GSoC)

GSoC logo

GSoC is an annual programme in which student developers of free and open source software projects receive stipends from Google for their work. LibreOffice takes part in GSoC every year, and in 2022, two students developed features and updates in the software. Let’s go through them…

Hannah Meeks – VBA Macros – Tests and missing APIs: LibreOffice supports VBA (Visual Basic for Applications) Macros, but the implemented API isn’t complete and the API functions aren’t largely tested. The consequence of this is that the VBA macros in OOXML documents don’t run as intended in LibreOffice, which causes compatibility problems. The goal of this project is to add tests for the functions already implemented and then look for what functions are missing for a method or module and add them. Hannah described her results:

I wrote lots of macros tests which was the main aim of the project and found lots of bugs/areas to fix, so my summer was a success! I also really enjoyed looking into the core and fixing some of these problems. Lots of my tests are still broken in LibreOffice so need fixing – for example, I found that there seem to be problems with new lines being created in Microsoft Word that are not created in LibreOffice Writer.

The second project was by Paris Oplopoios – Extend Z compressed graphic format support. Some graphic formats are compressed with ZIP (deflate) to make them smaller, while the formats themselves don’t support compression. In LibreOffice we already support SVGZ format, but not other formats. The goal of this idea was to look at how SVGZ is implemented and extend that to other formats (EMF, WMF). The extended goal was to implement support for compressing in addition to extracting.

Paris got off to a flying start with the originally defined goal, which was to add import functionality for Z compressed EMF and WMF graphics and thus to improve compatibility with Microsoft documents. In the end, he also implemented exporting of WMZ, EMZ and SVGZ graphics, replaced homegrown PNG export code with one that uses libpng and added automated tests for PNG export in addition to tests for the Z compressed formats.

For more details about the students’ great achievements, see the video below and the results post – and thanks to Tomaž Vajngerl and Miklos Vajna (Collabora) and Thorsten Behrens (allotropia) for mentoring the students.

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.


Quality Assurance (QA)

In 2022, the QA team triaged thousands of bugs, bisected hundreds of regressions, and answered questions from countless bug reporters. As one of the most visible groups directly responding to end users, the QA team must be nimble and able to adapt to changes. In addition, it must deal with specific requests for help from other teams.

The QA team meets regularly on IRC on the #libreoffice-qa channel, which is the best medium for discussing bugs and regressions. The IRC channel provides an excellent opportunity to remain in close contact with team members, and to tutor new members in the art and skill of LibreOffice QA. This is bridged to the Telegram group.

During 2022, 5,966 bugs were reported by 2,650 users, which means 115 new bugs were reported every week on average. The QA team prepared monthly reports about their activity and posted on the QA blog.

Top 10 bug reporters

  1. Telesto (288)
  2. Eyal Rozenberg (207)
  3. Mike Kaganski (165)
  4. Xisco Faulí (126)
  5. Gabor Kelemen (111)
  6. Rafael Lima (108)
  7. sdc.blanco (104)
  8. Regina Henschel (93)
  9. NISZ LibreOffice Team (93)
  10. Hossein (59)

Triaging

During 2022, 6,100 bugs were triaged by 391 people. Here are the top 10 bug triagers:

  1. Buovjaga (675)
  2. Dieter (462)
  3. Heiko Tietze (445)
  4. Xisco Faulí (354)
  5. Timur (327)
  6. raal (303)
  7. Julien Nabet (276)
  8. m.a.riosv (268)
  9. Rafael Lima (218)
  10. Mike Kaganski (207)

Bibisecting

Also, during 2022, the QA team performed 622 bibisects of regressions by 32 people. These are the top 10 bisecters:

  1. raal (144)
  2. Xisco Faulí (140)
  3. Timur (63)
  4. Aron Budea (57)
  5. Buovjaga (40)
  6. Stéphane Guillou (stragu) (24)
  7. Timur (20)
  8. Gabor Kelemen (19)
  9. Mike Kaganski (19)
  10. Telesto (18)

Like what we do? Support the LibreOffice project and The Document Foundation – get involved and help our volunteers, or consider making a donation. Thank you!

Welcome Khaled Hosny, new Developer at TDF

Khaled Hosny

The Document Foundation (TDF) is the non-profit entity behind LibreOffice, providing infrastructure and support for the community that makes the suite. Recently, TDF decided to expand its small team with a new Developer, focusing on improving LibreOffice’s language support. This will help to make the software more accessible to hundreds of millions of people around the world.

The new Developer is Khaled Hosny, so let’s hear from him…


Tell us a bit about yourself!

I’m a software developer based in Cairo, Egypt. My area of expertise is centered around written language; fonts, text layout in general and so-called “complex” text layout in particular (I don’t like how some text layout is signaled out as being complex – all text layout is complex, but some complexity is obvious right away while others are more subtle), PDF, and so on.

I have been involved with FOSS since 2006. I started with doing Arabic localization, then Arabic fonts, and a few years later I started programming to fix Arabic bugs (I think my first patch was to fix a right-to-left UI issue for Sugar, the desktop environment for the OLPC XO laptop, if anyone still remembers it). I contributed and continue to contribute to many FOSS projects – Firefox, GNOME, HarfBuzz, XeTeX, LuaTeX, to name some.

I got involved with LibreOffice in early 2011, and I have been lurking around since then.

I’m also a type designer and font engineer. I have designed and built a few Arabic and math fonts (I can’t read much of the math notation – I was taught math in Arabic notation and I hardly remember any of that either, but I’m fascinated by the 2D nature of math typesetting).

Funnily enough, I had no formal training in any of this, I actually graduated from medical school and worked as a doctor for few years before quitting to focus on a software career (I was already deep into localization and fonts while still at medical school).

Improved glyph positioning of artificial italic text in LibreOffice 7.5

Improved glyph positioning of artificial italic text, especially combining marks – implemented by Khaled in LibreOffice 7.5

 

What’s your new role at TDF?

I’m joining the team as a LibreOffice developer focusing on areas of right-to-left and the aforementioned so-called “complex” text layout. These are some of the underserved areas of LibreOffice development while disproportionately affecting a very large group of (existing and potential) users.

I hope my role at TDF will help to widen the LibreOffice community, attract more people to it, and make it accessible to more users.

What will you be working on?

I will be fixing bugs and implementing features related to right-to-left text layout and user interface issues which affect languages like Arabic, Hebrew, Persian, and Urdu, as well as text layout issues involving writing systems that require more involved text layout, like Arabic script, and the Indic group of scripts.

I will be also working on fonts, PDF export (text extraction from PDF is major pain point for many scripts), and related areas.

I’m also looking forward to mentoring new developers interested in working on any of these areas.

Do you have any tips for new developers, who’re eager to get involved with the LibreOffice codebase?

LibreOffice is a large code base and can be overwhelming, so try to read any existing documentation as much as possible, don’t be afraid to ask for help, and in general be patient.


We’re really happy to have Khaled on board! Follow this blog and our Mastodon and Twitter accounts for updates on his work – plus more news from the LibreOffice community.

Projects selected for LibreOffice in the Google Summer of Code 2023

GSoC logo

The LibreOffice Google Summer of Code projects have been selected for 2023.

  • Ahmed Gamal Eltokhy – Improve PGP/GPG encryption support: the project aims to enhance the experimental PGP/GPG encryption support in LibreOffice by addressing several shortcomings, such as the need to select recipients anew for every save and the difficulty in finding the right keys. The project will also focus on developing smart searching, traversing, and filtering capabilities for large keyrings, as well as adding asynchronous querying for improved performance.
  • Dipam Turkar – Convert Writer’s Java UNO API tests to C++: The unit tests for Writer’s UNO API which were forked from OpenOffice.org are still implemented in Java, which in the end test C++ code making it hard to debug them. LibreOffice has had a long term plan to move them to C++. The project will also focus on fixing the unit tests for errors, if any.
  • Baole Fang – Select tests to run on Gerrit patches based on machine learning: the goal is to implement a machine learning based test selection method to select tests to run in the continuous integration chain to reduce testing load.
  • Bayram Çiçek – Search field in Options: LibreOffice has a large and growing number of options and sometimes it is not easy to find the right one by searching them one by one. The goal is to implement a search field/functionality to the “Tools > Options…” dialog, so that we can find the right options easily.
  • Paris Oplopoios – Add APNG import/export support: APNG (Animated PNG) is an animated format backwards compatible with PNG. It is supported by all the major browsers and has benefits over GIF such as partial transparency and support for more colors. The goal of this project is to integrate APNG support in LibreOffice, which had been requested for quite some time.

Good luck to the contributors – we appreciate their work on these important features and improvements! And thanks to our mentors for assisting them: Tomaž Vajngerl (Collabora); Thorsten Behrens (allotropia); Andreas Heinisch; Heiko Tietze, Xisco Faulí, Stéphane Guillou, Hossein Nourikhah and Christian Lohmaier (The Document Foundation).

Between August 28 and September 4, contributors will submit their code, project summaries, and final evaluations of their mentors. Find out more about the timeline here, and check out more details about the projects on this page.

LibreOffice Community at Events in Italy, Spring 2023

LibreOffice meetup in Italy, 2023

Emiliano Vavassori, Deputy Chairperson in The Document Foundation’s Board of Directors, give us an update on recent events in Italy:


Linux Arena at Fiera del Radioamatore – Pordenone, April 23rd and 24th

As in every spring, the Pordenone Linux Users Group (PNlug) organizes an internal event inside the local ham radio/electronics fair, «Fiera del Radioamatore», called Linux Arena. This is an occasion for them to gather a multitude of representatives from different FLOSS projects (Odoo, OpenWRT, various GNU/Linux distros) and other local organizations (other Linux Users Groups, other FLOSS associations like LibreItalia) to show bystanders and interested people that using FLOSS software for a large variety of goals is indeed fun.

The Document Foundation has been hosted by them for a long time – at first with Italo Vignoli and then, in the more recent past, with the quite constant presence and support from Marco Marega (he goes by the name Akurery on the wiki, and he is one of the most prolific translators of LibreOffice documentation and manuals inside the Italian native language project community).

The turnout was unfortunately low, as the weather those two days was really nice, sunny and cool; nonetheless, we got the chance to speak with users and potential new contributors on a different number of topics, from simple use cases to troubleshooting and integration with other software.

We look forward to continuing the collaboration with PNlug at the November session of the Fiera del Radioamatore, by trying to propose different activities to the bystanders, such as a private cloud solution with a collaboration suite based on LibreOffice Technology.

PNlug released a summary of the event over LinkedIn, with photos! Linux Arena 2023: Spring edition (Google translated)


MERGE-it – Verona, May 12th to 14th

LibreOffice meetup in Italy, 2023

MERGE-it has been designed, since its inception back in 2018, by members of the Italian Linux Society (ILS) as an event where the Italian FLOSS communities can meet and exchange ideas, projects and collaborations, while trying to explain the advantages of the FLOSS to enterprises and public sdministrations.

The event is held once every other year, and this year’s event was the first one after the pandemic; the chosen venue was 311 Verona, a co-working and creative space hosting different companies, startups and volunteer associations often involved with FLOSS software – for example the local CoderDojo, a gym to teach young people about coding, and FabLab, an association of makers.

The first day (May 12th) was dedicated to enterprises and public administrations, mixing between regular users and makers of FLOSS with pretty important corporate realities in the Italian landscape (DevCode Srl with their ERP OpenSTAManager, Nethesis Srl with their complete software package based on NethServer, a CentOS-based distribution developed with their international community, all the enterprises under the RIOS consortium, which is a member of the APELL initiative). Participants on the first day were in the order of about 100 people.

The second day (May 13th) was devoted to the community-based projects and associations, creating a melting-pot of ideas, values and projects between very active communities in Italy, like Wikimedia Italia, FSFE, ILS, OpenStreetMap Italia, onData and our local community, LibreItalia; between those bigger groups, also other local Linux Users Groups from all around Italy (from Bolzano to Palermo). The very diverse composition of the bystanders helped in delving into various topics, organised as frontal speeches as well as in managed panel discussions, such as planning strategies to get FLOSS to be adopted in schools in Italy, how to involve younger contributors, and better collaboration and communication between communities with similar goals and values.

LibreOffice meetup in Italy, 2023

Although the attendance on the second day was a little bit lower (about 50-60 people), organisers shared the clear impression that the participation was felt much more than the first day. Of course, knowing very well that the best networking happens when seated for a meal, we tried to do our best by having dinner together on Friday and Saturday evenings!

On Sunday 14th, another couple of activities were scheduled: a hackathon, to better organize ILS’s online resources for its members, and a mapathon, hosted by OpenStreetMap Italia professional mappers, who came specifically for the event from Milan and Florence; the mapathon unfortunately suffered a slight change of scope, as heavy rains hit Verona and made impossible to do field mapping. But the hackathon was instead pretty successful, migrating most of ILS repositories out of GitHub to a self-hosted GitLab instance.

Our community was represented by Marco Marega, Gabriele Ponzo and Emiliano Vavassori, all TDF trustees as well as members of LibreItalia.

Overall, it was a positive, fun and constructive event to experience, and positive vibes were confirmed by most of the participants. We look forward to the next iterations to tighten ties with other FLOSS communities operating in Italy!

LibreOffice Documentation Updates in 2022 – Annual Report

LibreOffice Bookshelf

In 2022, the documentation community continued to update LibreOffice guidebooks and the Help application

(This is part of The Document Foundation’s Annual Report for 2022 – we’ll post the full version here soon.)

New and translated guides

Throughout the year, the documentation project closed the gap between LibreOffice’s major releases, and the updates of the corresponding user guides. By the year end, all of the version 7 guides updated to match the release of LibreOffice 7.4, and ready to continue for the forthcoming release – 7.5 – which arrived in February 2023. The goal of tracking the software release closely was achieved, and the documentation team is now in a steady state of small updates between releases.

The updates and enhancements of the guides were an effort of all the team, coordinated by Jean Weber (Writer and Getting Started Guide), Olivier Hallot (Calc and Base guides), Peter Schofield (Impress and Draw guides), Rafael Lima (Math guide). A number of volunteers also worked in each guide by writing and reviewing contents and suggesting improvements. Special thanks to Jean Weber for making the guides available for sale in printed format via Lulu Inc.

LibreOffice Help updates

LibreOffice Help

The documentation community also had a team of Help page bug fixes, closing Help documentation bugs, bridging gaps, fixing typos and improving quality, a must-have update to keep LibreOffice in-shape for its user base. A total of 650 Help patches were merged in 2022. The Help pages, which are part of the LibreOffice code, were also refactored continuously for better maintenance and code readability. The L10N team of volunteers (localization and translators) were quick in flagging typos and English mistakes – while translating the help content and the user interface.

ScriptForge libraries, and Wiki updates

The documentation community also had a nice contribution from Jean Pierre Ledure, Alain Romedenne and Rafael Lima, for the development of the ScriptForge macro library, in synchronization with the much-needed Help pages on the subject, a practice rarely followed by junior developers of LibreOffice. As we know, undocumented software is software that’s lacking; features that are unknown to the user can be a cause of costly calls to a help desk in corporate deployments. ScriptForge developments came together with its documentation, demonstrating the ScriptForge team’s professional maturity.

Special thanks to Steve Fanning for his leadership of the Calc Functions wiki pages maintenance. And thanks to the dedication of Ilmari Lauhakangas (The Document Foundation) for making the Calc functions wiki pages available for translation.

LibreOffice Bookshelf

In 2022, the documentation community also updated the LibreOffice Bookshelf, another download page for LibreOffice guides that is different from the current documentation.libreoffice.org server page. The Bookshelf can be cloned and installed in organizations, libraries, colleges and schools, for immediate availability in controlled environments, as well as online reading of the guides. The OpenDocument Format chapters were transformed into static HTML pages, and are ready to display on computers, tablets and cell phones, bringing LibreOffice user guides closer to the public, anywhere, anytime.

Like what we do? Support the LibreOffice project and The Document Foundation – get involved and help our volunteers, or consider making a donation. Thank you!

Success story: Fixing a limitation in LibreOffice Calc

Ever heard the term “scratching your own itch”? Wiktionary describes it as “doing something out of motivation to solve a personal problem”. In the world of free and open source software development, this happens a lot! Anyone can contribute to FOSS projects like LibreOffice, and help to improve them.

And that’s exactly what Rafael Lima did, with a long-standing limitation in LibreOffice. He rolled up his sleeves, got to work, and fixed it. Here’s what he had to say:


Rafael Lima

There’s a nice story behind my fixing this bug, so I’ll share it with you…

First of all, this is the bug that made me want to become a LibreOffice contributor.

For some background, I work at an Engineering School in Brazil and one of the subjects that I teach is Operations Research, so I often need to use linear programming solvers to, well, solve optimization problems. And since I’m a Linux user and an Open Source advocate, I would love to be able to use LibreOffice in my lectures.

But the first time I attempted to use the solver (maybe some 5 or 6 years ago), I was surprised to learn that the solver settings were not saved to the file. This was a complete showstopper, because students would have to prepare models in a spreadsheet and then hand them over to me for evaluation, but since it was not possible to save solver settings, I was never able to use LibreOffice’s solver in my lectures. This was really a shame, since the linear solvers available in LibreOffice are superior to what we find in the competition.

Some time later I opened a bug report to complain about the missing feature, which turned out to be a duplicate of bug 38948. At the time I was not a contributor and did not understand how things actually worked in open source, so my bug report had a quite angry note to it (which today I regret). But I could not understand why LibreOffice had overlooked such an important feature for so long.

After that, I kept on following LibreOffice on social networks, specially on Reddit, and noticed that many users had other “missing features” that they would like to have implemented, and then people on the threads often explained that LibreOffice is a community project and that someone would have to step up and implement the feature.

LibreOffice solver

So in 2020, I decided to join The Document Foundation and become a contributor… but implementing this solver feature would not be an easy task. So I started with contributions that are more accessible for beginners, such as documentation, help pages, and so on. Then I started fixing some smaller bugs (easy hacks) to get to know LibreOffice’s huge codebase. And finally in early 2023 I felt comfortable implementing this solver feature.

What makes me glad is that next semester when LibreOffice 7.6 is out, I’ll be able to use it in my Operations Research classes and students will have a nice reason to consider LibreOffice for optimization tasks.

I still have some more improvements that I would like to make to the solver, such as changing the user interface, and enhancing the solver API so that it becomes easier to build and solve models using Basic and Python macros.

Also, I’m planning to attend the LibreOffice Conference this year to discuss some technical aspects about the fix for this bug, as well as some solver API proposals that I would like to put forward.


Thanks, Rafael – great work. We’re looking forward to seeing you at the conference this year too! And everyone else is welcome to join our QA community and do great things, like Rafael did here.