LibreOffice Conference 2024 Workshop

Introduction to LibreOffice Development

11 and 12 October 2024

This is the program for the 2 day LibreOffice conference 2024 workshop in Luxembourg, focusing on LibreOffice development. Targeted audience is the undergraduate computer and IT students or anyone who knows programming, and now wants to become familiar with a large scale real world software project.

The program is based on the experiences from the previous hackfests and workshops dedicated to the LibreOffice development in the universities across the world. The latest was held in Bucharest in parallel to LibreOffice conference 2023. It was a 3 day development workshop was held by presenters from The Document Foundation (TDF) staff, university faculty members and other experts from ecosystem companies.

After successfully participating this workshop, participants with will be able to collaborate in LibreOffice development. Those who are not programmers, can participate in quality assurance activities, and those who have some C++ programming knowledge can start LibreOffice development by submitting small patches.

The overall goal is to help the students become familiar with an international community of open source / free software, the LibreOffice community, and enable them to work alongside people around the world to improve and extend LibreOffice, the free and powerful office productivity suite.

The sessions which will be held in the 2-day program. Each day is presented in two parts, in the morning from 9-13, and in the afternoon from 14-18.

Day one - 11 October 2024

For the first part, basic computer knowledge and skills would be sufficient. Participants should be able to install LibreOffice (portable versions can also be used), create accounts, work with LibreOffice, and report/triage bugs. Basic information about IRC/Wiki/mailing lists will be given during the sessions.

For the LibreOffice build session, the required knowledge is more. Having worked with a programming language is needed.

 

1. Bug reporting and triaging (1 hour)

11 October 2024, 9:00–10:00CEST

Presenter: Xisco Faulí, TDF staff, quality assurance Engineer

LibreOffice uses Bugzilla to track the software bugs. In this session, various things around bug reporting and triaging will be discussed. Students will have the time to have experience of reporting and triaging bugs in Bugzilla.

  • Bug reporting and triaging
  • Importance of bug tracking
  • Bug reporting
  • Bug triaging
  • Hands on experience with Bugzilla
    • Downloading and installing LibreOffice
    • Setting up a Bugzilla account
    • Reporting bugs
  • Triaging bugs

2. Git basics (1 hour)

11 October 2024, 10:00–11:00 CEST

Presenter: Michael Weghorn

In this session, students will learn basic git commands. The knowledge will be beneficial for the next sessions of the workshop, but it can be beneficial for other software projects as well, as version control systems are in use in many software projects today.

  • Git basics
    • Understanding the version control systems
    • Setting up git
    • Staging environment
    • Doing a commit
    • Understanding a diff
    • Modifying the commit
    • Branches
    • Merge and re-base

3. Gerrit for code reviews (1 hour)

11 October 2024, 10:00–11:00 CEST

Presenter: Xisco Faulí, TDF staff, quality assurance Engineer

In this session, basics of code review is discussed. Students will be able to work with the LibreOffice Gerrit. In this session, the importance of clean code, and the role and the process of code review will be discussed.

 

This session is also useful for any other software project, as code reviews are very common today to ensure the quality of the code.

 

  • Gerrit for code reviews
  • What is Gerrit?
  • Hands on experience with Gerrit
    • Setting up
    • Committing your changes
    • Pushing your changes
    • Add a reviewer
    • Modify your changes
    • Split your changes
    • Edit your changes online

4. Introduction to problem solving techniques (30 minutes)

11 October 2024, 12:00–12:30CEST

Presenter: Michael Meeks, Collabora Productivity

In this session, it will be discussed how to get into the complex problems with problem solving techniques. These ideas will be useful when dealing with the large code base of LibreOffice that has evolved for many years.

5. Building LibreOffice from source code (3 hours)

Presenter: Christian Lohmaier, TDF staff, release engineer

This session is dedicated to building LibreOffice from the sources. For this session, preparations are needed to speed up the process as downloading and compiling can be time consuming. For example, having source code and requirements downloaded, or preparing virtual machines with the prerequisites and LibreOffice source code can speed up the build process.

  • Building LibreOffice from source code
    • Setting up the development environment
    • Getting the LibreOffice sources
    • Configuring LibreOffice with appropriate settings
    • Compiling LibreOffice

Usable resources for this path are: Getting Involved in LibreOffice Development.

6. Introduction into Writer development (1 hour)

11 October 2024, 17:00–18:00 CEST

Presenter: Miklos Vajna, Collabora Productivity

In this session, LibreOffice Writer development will be discussed. Tools, data structures, the UNO API alongside various document formats including RTF, doc, ODT and OOXML will be discussed. Also, UI and other aspects of Writer are taken into account. The goal is to provide a starting point for those who are interested in LibreOffie Writer development, in order to fix bugs or implement new features.

Day two - 12 October 2024

We expect that the participants have completed at least some programming course before. LibreOffice BASIC is something that should be easy to understand for those people, and is not counted as a prerequisite.

7. LibreOffice Documentation (1 hour)

12 October 2024, 9:00–10:00 CEST

Presenter: Olivier Hallot, TDF staff, Documentation Coordinator

In this session, the documentation for software, and its role in software development will be discussed.

  • Various types of documentation
  • User documentation
  • Developer documentation
  • How to contribute

8. LibreOffice automation via scripting (BASIC, Python) (3 hours)

Presenter: Prof. Dr. Rafael Lima, faculty member, Universidade Tecnológica Federal do Paraná (UTFPR) / Alain Romedenne / Jean-Pierre Ledure

In this session, one only needs a working installation of LibreOffice. Two different scripting language are suggested in this path: Basic and Python.

  • LibreOffice automation via scripting
  • Basic scripting in LibreOffice
  • Python scripting in LibreOffice
    • UNO API
    • ScriptForge

Usable resources for this session are: LibreOffice BASIC programming guide and LibreOffice help (ScriptForge parts).

The focus in this session will be on running different examples, and writing various scripts that show the different aspects of LibreOffice and its automation capabilities. ScriptForge (Python) can be a good choice here, as it provides a modern API that can be easily used, but it should be noted that it is not as feature complete as the UNO API.