LibreOffice ecosystem interview: Caolán McNamara at Red Hat

LibreOffice is developed by a worldwide community, made up of volunteers, certified developers and companies in the wider ecosystem. Today we’re talking to Caolán McNamara, a long-time LibreOffice developer who works for Red Hat…

Tell us a bit about yourself!

I’m a Principal Engineer at Red Hat, Inc. on the Desktop Team since 2004! And I live on the west coast of Ireland.

What does Red Hat do in the LibreOffice ecosystem?

We try and do a lot of different things, from integration with the GNOME desktop, Calc and UNO work, and porting to architectures such as aarch64 and ppc64le, but I can highlight some of the efforts we make in detecting flaws close to when they get introduced into LibreOffice.

We maintain the regular crashtesting infrastructure, where we import and export 120,000+ documents and typically fix, or identify the triggering commit, any new import/export failures as they are discovered.

Similarly, we maintain the LibreOffice Coverity instance and work to keep the warnings to an effectively zero level in over six million lines of code, as part of that early detection of code flaw process.

In the same theme, we manage the LibreOffice OSS-Fuzz work and work to maintain the level of import related issues to a minimum, especially as a tool to detect potentially security related regressions before they are released, with over 1000 fixed to date.

We recently released LibreOffice 7.3 – what did you work on in that version?

The last user interface feature I did for 7.3 was a little rework of the calc autofilter dropdown, to add “popup on hover” of the color filter submenus and adding color names and some other tweaks, which itself was just an extension of Samuel Mehrbrodt’s (allotropia) more substantial LibreOffice 7.2 work to support color filtering in the autofilter.

Another feature we worked on that landed in upstream 7.3 was extension of the command line conversion of spreadsheets to comma separated value files to additionally support the optional export of each tab of a spreadsheet to a separate output CSV file.

Looking beyond this release, what else are you planning to do?

I’m working on GTK4 version of LibreOffice. It’s not finished by any means, but it’s mostly functional and making progress.

Follow Caolán’s LibreOffice work on his blog, and check out his FOSDEM talk about the GTK4 port.

Using a Matrix Bridge with LibreOffice IRC Channels

Hossein Nourikhah writes:

Ever wondered about using modern chat tools to discuss LibreOffice? Here we will discuss using a Matrix bridge to connect to the LibreOffice IRC rooms, to participate more efficiently in LibreOffice-related discussions.

Traditionally, IRC has been the preferred way of communication for the FOSS communities including the LibreOffice community. There are multiple IRC rooms that you can join, and the one related to the LibreOffice development is #libreoffice-dev at Libera Chat network. A more complete list is in the TDF Wiki:

IRC is an open protocol, and there are many clients for it. With the modern IRC clients, some of the shortcoming of the earlier IRC clients are now resolved. For example, you can use encryption in your connection.

https://libera.chat/guides/connect#accessing-liberachat-via-tls

On the other hand, IRC still has its drawbacks. You have to be online to get the messages, and you will lose the messages that was sent when you were offline. There are solutions like “IRC bouncers” that can help resolve this specific issue, but when compared to the modern chat clients and protocols, IRC still falls behind. So, many people prefer the new tools for chat.

But, is there a way to connect these two worlds, old and new? Fortunately there is a solution: using a Matrix bridge.

Using the Matrix Bridge for the LibreOffice IRC Channels

To use the matrix bridge for the LibreOffice IRC channels, first you need a Matrix account. Then, by clicking on the link below you can connect to the “LibreOffice space“, and see the LibreOffice channels in Matrix:

https://matrix.to/#/#libreoffice-space:matrix.org

"<yoastmark

You don’t have an account? No problem! You can register one at matrix.org. It is as easy as a simple sign up, by entering username, password and your e-mail. You have to verify your e-mail address by opening a link sent to your inbox.

You, or your organization can have your own Matrix home server. If not, you can stick to matrix.org account. In any way, having a Matrix account lets you to join the LibreOffice space.

Join LibreOffice space
Join LibreOffice space

Subsequently, after joining the LibreOffice space you can join separate rooms and enjoy the Matrix bridge!

Join rooms in the LibreOffice space which uses Matrix bridge to IRC
Join rooms in the LibreOffice space which uses Matrix bridge to IRC

Then, if you look at the users list in the IRC rooms, you see several people with [m] after their names. They are usually people that are using Matrix bridge. If you are also using Matrix bridges, you can use the Matrix for private messages and use all the features available in Matrix protocol and client.

Finally, we hope that you enjoy the LibreOffice space on Matrix, and have fun!

Community Member Monday: Bayram Çiçek

Today we’re talking to Bayram Çiçek, who’s helping to implement new features in LibreOffice as part of the Google Summer of Code…

Tell us a bit about yourself!

I live in Çanakkale, Turkey. I’ve just graduated with a bachelor’s degree in Computer Science from Çanakkale Onsekiz Mart University.

When I was a student, professors and instructors always told us about the importance and benefits of contributing to free and open source projects like LibreOffice. Since I was a LibreOffice user for years, the idea of not just being a user – but developing it, to go beyond being a user – has always been exciting to me. Therefore I decided to contribute to LibreOffice.

In November 2020, Hacettepe University organized an event called “ACM Hacettepe Lectures”. I attended the course “Contributing to Open Source Projects with C++” by Muhammet Kara. We sent our first patches to LibreOffice and Collabora Online together with other attendees, and this is how my journey began.

Then, I decided to apply to Google Summer of Code 2021, and I was lucky enough to get selected as a student under the mentorship of Muhammet Kara and Heiko Tietze, in the past summer. I worked on the most-annoying bugs, and tried to fix as many bugs as I could during GSoC.

What are you working on in the LibreOffice project right now?

Currently, I’m working on Tables in Writer, and hoping to add a diagonal-borders feature to it. After gaining some more experience, I’ll be working on some bugs that related to my GSoC project, as I mentioned in my GSoC final report.

Why did you decide to become a member of The Document Foundation?

I think contributing to LibreOffice is both fun and sometimes challenging. When ‘fun’ and ‘challenge’ come together, it creates a great community, as LibreOffice does; and being a part of this community makes you more passionate and stronger. And that’s why I wanted to become a TDF member.

Anything else you plan to do in the future?

I will work on most-annoying bugs and I’ll be fixing as many bugs as I can in the future. Also, I want to actively contribute to Collabora Online.

On the other hand, I’ll continue to contributing to Turkish translation of LibreOffice and I want to be an active member of Turkish Community to spread the open source usage and LibreOffice.

Many thanks to Bayram for all his contributions, and enthusiasm in our community! And to everyone reading this: Find out what you can do for LibreOffice – have fun, build up your skills, and do awesome things 😊

LibreOffice and Google Summer of Code 2021: The results

Google Summer of Code logo

This year, LibreOffice was once again a mentoring organization in the Google Summer of Code (GSoC), a global program focused on bringing more student developers into free and open source software development. Seven projects were finished successfully. Students and mentors enjoyed the time, and here we present some of the achievements, which should make their way into LibreOffice 7.3 in early February 2022!

You can experiment with the new features by using daily builds and report any problems in our bug tracker.


100 Paper Cuts by Bayram Çiçek

Mentors: Muhammet Kara (Collabora), Heiko Tietze (TDF)

100 Paper Cuts aims to improve user interface, implementing enhancement requests and solving the most annoying issues on the user experience (UX) side of LibreOffice.

Bayram fixed six bugs from different topics. Most notable are border preview not showing the diagonal border option, a bug where cropping flipped images occurred at the wrong side, and mouse-over effect for different palettes in the area tab.

Learn more about 100 Paper Cuts in the final report.

Screenshot of diagonal borders


Integrate .ui dialogs with translation tooling/string search webservice to help translators by Sary Nasser

Mentors: Christian Lohmaier, Olivier Hallot (TDF)

Sary automated the adding of screenshots to our translation platform, Weblate, while associating them with translatable words. This will greatly help translators by providing context for their work.

Learn more about the translation tooling in the final report.


Tests for the VCL graphic backends by Akshit Kushwaha

Mentors: Tomaž Vajngerl, Luboš Luňák (Collabora)

LibreOffice adapts its user interface to different operating systems with the help of its graphics toolkit Visual Class Library (VCL). Thanks to Akshit’s work, we have a working suite of automated graphics rendering tests. There is now also the ability for users to run the tests manually, inspect the results and attach them to our bug tracker in case there is a problem.

Learn more about the tests in the final report.

Screenshot of VCL tests


Improving table styles by Balázs Sántha

Mentors: László Németh (independent), Michael Stahl (allotropia)

This project resulted in fixes for the most annoying Writer table style issues. Further work is needed to provide full DOCX compatibility.

Learn more about DOCX tables styles in the final report.


Make SVM (StarView Metafile) format independent of the VCL Metafile + tests of the format by Panos Korovesis

Mentors: Tomaž Vajngerl, Miklos Vajna (Collabora)

Thanks to the work of Panos, the SVM file format is handled independently of internal VCL constructs, which will make important reorganisation of the VCL code possible. Panos also created automated tests for the SVM format.

Learn more about the SVM project in the final report.


Show text styles together in the sidebar by Anshu Khare

Mentors: Mike Kaganski, Tomaž Vajngerl (Collabora), Heiko Tietze (TDF)

Both paragraph as well as character styles are essential means to format text. Many users struggle with this concept and use direct formatting. Also, we don’t show both at once, and the two style families are not obvious to spot for casual users.

In order to improve the handling of styles (and as necessary preparation for the styles highlighter), Anshu started to rework the code. The new code makes it now possible to merge both lists into one view. A first patch was also part of the project – although it is not finished yet.


Implement Interface for external data source import into Calc by Tushar Kumar Rai

Mentors: Markus Mohrhard (independent), Heiko Tietze (TDF)

The data provider allows to import various data such as local CSV files or streams from external sources, and to apply transformations like adding/removing rows or columns, formatting and numerical operations with the data before it is inserted into the sheet. Plus, to update the data by still applying the transformations is just a click.

The project aimed to rework the user interface. Tushar organized the layout according the user workflow and common UI principles and made the workflow of adding/removing transformations easy to understand. He also added a couple of transformations.

Learn more about the data provider project in the final report.

Screenshot of Data Provider


Wrapping up

Many thanks to all students who spent their summer time improving LibreOffice. You are awesome! And special thanks also to the mentors who always put so much love and energy into these tasks. That’s what makes LibreOffice rock.

Now we are looking forward to next year’s GSoC. If you are interested, why not prepare early? Learn more at out wiki page where some ideas are listed.

Participating in GSoC is a great way to build your skills, and show future employers what you’re capable of!

Tender to implement C++ accessibility tests (#202110-01)

The Document Foundation (TDF) is the charitable entity behind the world’s leading free/libre open source (FLOSS) office suite LibreOffice.

We are looking for an individual or company to implement C++ accessibility tests.

The work has to be developed on LibreOffice master, so that it will be released in the next major version.

The current accessibility tests are rather incomplete and hard to maintain. Additionally, they are written in Java.

The scope of this tender is to convert them into in-process cppunit-based tests and create a solid foundation in both code as well as documentation to facilitate extending the coverage both as part of this tender as well as for follow-up contributions. TDF aims to prepare a good infrastructure and documentation, so that adding further tests is much simpler in the future, even for new kinds of widgets, up to a point where they could be implemented as part of our EasyHacks. The implementation therefore has to be solid and thorough to support future test cases easily.

We recommend the following steps to approach the tender deliverable:

  • assessing the technical requirements (both using the existing tests to convert, plus the various requirements of a11y in general)
  • assessing the current status
  • designing and creating the new required interfaces, or adapting or augmenting existing ones
  • creating helpers to ease writing tests
  • writing some tests to both serve as examples and proof of concept (at least a couple for each key aspect of testing, but exercising the infrastructure to validate it is key to having something that has a chance of withstanding the test of time)
  • extensive documentation on all those, plus how to write tests and such
  • peer review

Therefore, this tender should provide the infrastructure to:

  • Test the interfaces (AT-SPI, UIA, MSAA, etc.) allowing accessibility tools (ATs) such as e.g. screen readers, magnifier glasses, etc. to access the information required to perform their tasks. This requires testing the LibreOffice implementation of the AT interfaces themselves to catch issues at the outer edge. It is crucial because even if all is well working inside LibreOffice itself, but the information is not properly sent to the platform, it still won’t work for users. Also, it probably has to be done for each platform separately (Desktop Linux (AT-SPI2), Windows (UIA, MSAA), macOS etc.) as their APIs are different, even if often similar, and have separate modules in LibreOffice.
  • Test that there is enough information sent through those interfaces and that it is accurate and usable. This could rely on internal unified interfaces to fetch information and interact with the UI, but there still is a fair bit of diversity on what needs to be tested.
  • Test that functionalities are usable with different type of input (e.g. work with the keyboard, as it’s the most common offender). Also this could rely on internal unified interfaces to fetch information and interact with the UI, but there still is a fair bit of diversity on what needs to be tested.

A key item of the deliverables for this tender is the extensive documentation (in addition to the source-code documentation) that will allow to both maintain the converted tests as well as create additional tests. The documentation shall include (but is not limited to) common pitfalls with accessibility related tests (like timeouts/waiting for events/deal with load dependent/parallelism differences) and how to deal with them. The documentation could walk the developer through the process behind the creation of newly created tests, showcasing both the obvious and not-so-obvious hurdles with that specific tests/a11y related tests in general and how they were dealt with. Aiming for an extendable framework, this likely requires creating new interfaces for missing functionality for reuse in tests.

We expect bidders to provide information on both the code and the non-code parts of this tender, e.g. methodology, structure and technical aspects. The Document Foundation will publish this under a free and open source license and make it available to the general public.

Required skills

  • Extensive knowledge of C++
  • Experience working on the LibreOffice source code

Other skills

  • English (conversationally fluent in order to coordinate and plan with members of TDF)

We use free, libre and open source (FLOSS) software for development wherever possible, and the resulting work must be licensed under the Mozilla Public License v2.0.

TDF welcomes applications from all suitably qualified persons regardless of their race, sex, disability, religion/belief, sexual orientation or age.

Bidders will get a preference for including a partner or independent developer who has not been involved in a successful tender before.

As always, TDF will give some preference to individuals who have previously shown a commitment to TDF, including but not limited to certified developers and/or members of TDF. Not being a member, or never having contributed before, does not exclude any applicants from consideration.

The task offered is a project-based one-off, with no immediate plans to a mid- or long-term contractual relationship. It is offered on a freelance, project basis. Individuals and companies applying can be located anywhere in the world.

When budgeting, we anticipated that this project (all items combined) to take in the region of 30 days of work. Should bidders’ assessment result in a significantly different number, please reach out to us before sending your bid, so we can clarify upfront.

TDF is looking forward to receiving your applications for one or more of the aforementioned tasks, your financial expectations and the earliest date of your availability, via e-mail to a committee at tender20211001@documentfoundation.org no later than November 26, 2021.

Applicants who have not received feedback by December 23, 2021 should consider that their application, after careful review, was not accepted.

All bidders are invited to ask their questions on this tender until November 19, 2021. Questions and answers will be made public in a collected and anonymized form.

Youth Hacking 4 Freedom – from the Free Software Foundation Europe


(Graphic by Lisa Schmidt, CC-BY-SA 4.0 or later)

The Free Software Foundation Europe is starting a new competition:

Are you up to hacking on a software project of your choice? Do you want to meet like-minded people of your age from around Europe? What about getting the chance to receive one of our cash awards and to travel to Brussels to meet the other winners and great people from the Free Software movement? Then join the YH4F competition! The only conditions for you to join are that you are 14-18 years old and you live in Europe. Start by registering before Sunday, 31 October 2021.

There’ll be an online event on Sunday, 10 October at 17:00 CET – see the Youth Hacking 4 Freedom page for more info, and details on registering.

And there’s more: Thorsten Behrens from The Document Foundation’s Board of Directors is on the jury. So, if you fill the requirements listed above and want to get hacking on a project, join in!