CoreHacks

From The Document Foundation Wiki
Jump to: navigation, search

CoreHacks are the next step after EasyHacks on your journey to become a core developer. They require more time and require often that you spend some time researching the best technical solution. You'll still have a mentor that might help you answer some questions. If you have never done any LibreOffice development, please start with an EasyHack.

If you plan to work on a task, add yourself below the project and talk to the mentor.

Projects

Better automated update mechanism

LibreOffice has an update checker that reports when a new version is available. The user still needs to download the new binaries manually and install them. Mozilla has already a solution to this problem that provides an automated update of the suite. We should explore their solution and check if we can reuse their code. In a first step this project is about researching how the Mozilla solution works and what needs to be done to use it in LibreOffice. In a second step we might want to implement the solution.

See also tdf#68274

Note: This is currently under development as a GSoC project.

Mentor: Jan Holesovsky, kendy, kendy a t collabora.com

Support OOXML strict export

Currently LibreOffice supports OOXML transitional import and export and initial OOXML strict import. We should however work on supporting OOXML strict as well during export and fix some of the import problems that will be discovered during the export work.

The biggest difference between OOXML transitional and OOXML strict are different namespaces and different URLs in relationships. For the import I managed to abstract them a bit but they are still mostly string based. We should switch to an enum based approach for most of them that is translated in oox/ to the URL. Additionally all content that is in OOXML transitional but not in OOXML strict needs to be guarded by a check.

Mentor: Markus Mohrhard, moggi, markus.mohrhard@googlemail.com

Make the wikihelp the primary help

Currently the LibreOffice help is generated during the build from a xml based format if you configure with --with-help. This xml based format makes it difficult for new people to work on the help so there is a plan to make the wikihelp the primary help and generate the offline-help as static html sites from the wikihelp.

The first step is to change the python script to allow using a translation toolkit (most likely the mediawiki translate toolkit) and be able to upload all the help texts with all existing translations. The next step is to look at the html export and most likely write an index and search functionality for the offline-help.

Skills: Python, some web skills, mediawiki

Mentor:

Jan Holesovsky, kendy, kendy a t collabora.com

Markus Mohrhard, moggi, markus.mohrhard@googlemail.com

OOXML export and import of Impress text fields

LibreOffice support for pptx export and import of text fields specific to Impress is currently very limited. Of all available fields, only URL and slide number can be exported and none of the fields (with exception of URL) can be properly imported (they are converted to plain text on import, so some data is thus lost).

The first step would include implementing export and consequently import of those fields specified in OOXML standard and/or available in MS Powerpoint. Since Impress seems to support inserting more different kinds of fields than MS Powerpoint does, the second (optional) step would be implementing export and import of those additional fields using OOXML extension and LO's own namespace. Covering the new code with tests goes without saying :)

Skills: C++, XML, some UNO (for tests)

Mentor:

Katarina Behrens, bubli, katarina.behrens at cib.de

Assigned to: Rosemary Sebastian

For Mentors

Please make sure that the task you are going to add is feasible and can be solved by someone who has an intermediate understanding of the code base. The project can require some research if you add some pointers showing where to look for information.