LibreOffice community focus: Development

Over the past few weeks, we’ve talked to the documentation, localisation, QA (quality assurance) and design communities about their preparations for LibreOffice 6.0, which is due to be released this week. For our final Community Focus, we turn to the developer community, which has helped to implement many of the new features you can see in the release notes.

How does the community work on new features?

Development in LibreOffice is achieved using a wide variety of tools and services, which is a testament to the maturity and longevity of the project. The LibreOffice developer toolkit is best summarized by going through the lifespan of a single patch:

1. Communication. When a user would like to see a new feature in LibreOffice, or identifies a problem, he/she has one of several options to bring it up:

  • Bugzilla: We use our own self-hosted Bugzilla instance. This one of the biggest installations of Bugzilla out there. If you don’t want to report a new issue but would like to contribute towards existing ones, we collect and sort bugs based on skill, difficulty and topic. We also provide a list of EasyHacks that new contributors are encouraged to tackle for a start.
  • E-mail lists: We have several e-mail lists used for general discussion, reports, help and development, the two most important are: libreoffice@lists.freedesktop.org (developers) and users@global.libreoffice.org (users). Here’s how to sign up to the lists.
  • IRC: Core and not-so-core LibreOffice hackers usually hang around in the #libreoffice and #libreoffice-dev channels on the Freenode IRC network. You are welcome to join and ask for help, guidance and general support in there.
  • Telegram, QA, Twitter, etc: We are present on many other online services – global or localized for your community. Check the full list here.

Users, developers and project members usually roam these communication channels and both development and general discussion is taking place. Communication is key. Then the next part is…

2. Development. During this phase the most important tools in the LibreOffice developers’ toolkit are:

  • Git: The LibreOffice source code is self-hosted using Git and is available here. Getting started with LibreOffice and Git is outlined on this page, and an easy build set-up can be achieved using the logerrit tool that we provide.
  • Wiki: The Wiki is a good place to look for information and refine your question before reaching out.
  • Code search: You can easily search (grok) the codebase and reference parts of code in your inquiries to developers using the Opengrok installation.

3. Next steps. Once general agreement has been achieved on how to implement a new feature or fix a specific bug, the following services are used:

  • Gerrit: Core developers and newcomers alike collaborate on the shared code base, using the communication channels outlined before, and Gerrit code review. The Gerrit procedure is recommended for all submissions and all projects that are part of the LibreOffice realm. Signing up on our self hosted Gerrit is crucial to the development process and getting you code admitted into the project.
  • Jenkins and Tinderboxes: Once a specific patch is submitted via Gerrit, a set of automatic continuous integration QA&build tests are being run for all supported platforms, and any defects or regressions will be reported automagically along with feedback from other developers.

An overview of our most critical infrastructure used for development and release engineering is available on this site, while the Wiki has a list of additional services.

Another useful tool – a new addition to the toolkit – is the LibreOffice dashboard. You can use it to inspect the development, release and lifecycle of LibreOffice core and its associated repos with a bird’s-eye view.

So that’s the final Community Focus – a big thanks to all developers and testers who’ve helped to add the many great new features in LibreOffice 6.0! (And thanks to Teodor Mircea Ionita for his help with this post.) Stay tuned to this blog for the official announcement of the new release…