Behind the scenes at TDF: Release Engineering

Towards the end of the year, The Document Foundation would like to share achievements in 2014 with our community and our generous donours, to whom we’d like to express our sincerest gratitude and thanks for their incredible and wonderful support and their invaluable contributions!

Hi, I’m Christian Lohmaier and I’m Release Engineer as well as Infrastructure Administrator at The Document Foundation and have been with the project since it’s foundation. Also long before I was active in the predecessor project, where I filed my first bugreport more than 14 years ago (2000-10-23) and later was one of the founding members of the German native-lang project 🙂

cloph_headIn 2014 we redesigned our main user-facing website ( – working with Eleonora Anzini (who created the design) to bring her vision to our CMS (Silverstripe) was one of the first big tasks this year, that already started in 2013 and after lots of tweaking of both the content (managed by Charles-H. Schulz) and the styles/the framework, the new design went live in March.

Release-wise, the year started with 4.1.5 rc1 and 4.2.0 rc3 – only the first in a series of around 50 released builds (betas and release candidates) for QA and curious individuals, not counting the daily/nightly builds provided by our tinderboxes for all platforms.

Maintaining two concurrent release branches at a time, combined with our time-based release schedule ensures a constant flow of bugfixes and updated translations (for the enduser every four to five weeks) with a new major release every six months, but of course also sometimes it is challenging for some parts of the projects.

Especially for each new major (in this context a new x.y.0 release), work starts much earlier, and integrating the translations takes more time than for a bugfix release, on top of that we updated our baseline build configuration a couple of times. From Windows Server 2008R2 with Visual Studio 2010 for 4.1.x and earlier, to Windows Server 2012R2 with Visual Studio 2012 for 4.2.x and 4.4.x to Windows Server 2012R2 with Visual Studio 2013 for master/4.5.x and later, for Linux from CentOS 5 with gcc4.4 for 4.3.x and earlier, to CentOS 5 with gcc4.8/devtools2 for 4.4.x and later and on Mac from 10.6 baseline for 4.3.x and earlier to 10.8/64bit for 4.4.x and master.

As Sophie mentioned in her posting, LibreOffice transitioned from using static dialogs to dynamically created ones (using glade to define them). That, together with other cleanup, did result in many changes in parts of strings that aren’t meant to be translated, but would still result in the string being flagged as new and thus translators would have to retranslate it. To minimize the impact, I used some scripting-foo that can map the old to the new string and thus can reapply translations while automatically updating the non-visible part, hopefully saving the ~120 language teams quite a bit of work.

To reduce translators’ workload before a new major release, we’re going to add a master based translation project in Pootle – this will allow translators to update and polish translations in the whole six months between releases, and not just in the couple of weeks after branch-off. This also allows to sync translations with the master branch, meaning translators can see their translations in a developer build much easier (and thus earlier).

Besides LibreOffice itself, 2014 also the rewrite of the LibreOffice Impress Remote for Android and iOS were released, allowing you to use your smartphone or tablet to navigate between slides and control a virtual laser-pointer.

In the second half of the year, I prepared a Hackfest-VM for the first time (a ready-to-start-hacking VM with prebuilt LibreOffice source tree run on amazon’s EC2) that attendees could use to start coding right away without having to wait 6 hours for their laptops to complete a build. This was later extended to also allow for bibisecting. Unfortunately communication on the location was lacking sometimes, so people didn’t always know how to make use of that goodness, still it’s something that we’ll continue to provide for future hackfests as well (lession learned!).

Also in the second half of the year, the multilang planet was born. It doesn’t only aggregate English blogposts, but blogpostings from contributors in all kinds of languages. If you want to have your blog added, feel free to send a pointer.

The last months of the year were dominated by the migration to a new infrastructure, but you’ll read more about that in another post 🙂

No Responses