Google Summer of Code With LibreOffice — Project Overview

Google Summer of Code With LibreOffice — Project Overview

Project Title: Move the gallery code to use ZIP files

Hi! In this story I’m going to share the technical details about the project that I have undertaken this summer with LibreOffice.


The Objective

The project objective is to move the gallery code to use ZIP files — hence the name. Previously, the software used its custom built binary formats to store the information of gallery themes. These formats(like .sdg, .sdv, .thm, .str) have data stored inside of them which is not present in human friendly language. For example, arrows.str stores the name of the theme called Arrows, as shown below.

Image for post

arrows.str

This example is the “most friendly” that binary files can get with user. If you don’t believe me, look at the figure below. It’s not readable by human, because it’s a binary file!

Image for post

arrows.thm

So the primary objective of the project is to transform the binary files to human readable formats and enclose them into a ZIP file altogether. ZIP format is the standard encapsulation format and supports lossless data compression. This project will be a great improvement in the LibreOffice source code as gallery themes will finally be easily read and written. The developers will be benefited greatly from the project because it will be easier to resolve bugs, add improvements and features to the gallery. Let’s discuss the project phases.

While writing the proposal for the project, Tomaž Vajngerl (my mentor) and I had discussed a layout of the structure and how the project would be divided in different phases.

Phase 1: Unit Testing

Phase 2: Refactoring of code

Phase 3: Implementation of XML+ZIP Engine


Phase 1: Unit Testing

“It is to be observed that the refactoring phase should not affect the behaviour of the code. This will only be done to make the current code cleaner and easier to work with. To make sure that refactoring is done right, tests must be written.” -GSoC Proposal

To know the reason why the unit testing phase exists in the first place, it’s important to know a little bit about the following phase — refactoring of code.

A snapshot of the LibreOffice Gallery is shown below:

libreoffice gsoc open-source google google-summer-of-code

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Did Google Open Sourcing Kubernetes Backfired?

With Google not owning the trademarks or control for Kubernetes, it also provided a competitive edge to AWS, Microsoft, IBM etc.

My Journey From Open Source Noob to Google Summer of Code 2020

If you’re a new open source contributor, the process can be intimidating. How do you find the right project? What if you don’t know how to code? What if something goes wrong?

An Open-Source Book About the Open Source World

Open source today is a word that often include a lot of things, such as open knowledge (Wikimedia projects), open hardware (Arduino, Raspberry Pi), open formats (ODT/ODS/ODP) and so on.

GitHub Arctic Code Vault: Overview

Are you an Arctic Code Vault Contributor or have seen someone posting about it and don't know what it is. So let's take a look at what is an Arctic Code Vault Contributor and who are the ones who gets this batch.

Google Summer of Code 2020 results

The Dart team mentored 5 student developers this summer, as part of GSoC 2020. Read about the student projects.Google Summer of Code (GSoC) is a global program focused on bringing student developers into open source software development.