Build Automation in Akonadi and the rest of KDE
Speaker: Mirko Boehm
The benefits of Continuous Integration are wide ranging, and by now well-known and accepted throughout our industry. When it comes to cross-platform software development, and diverse build environments, automating a build process is not trivial. Because of its sheer size and complexity, automating the build of KDE libraries and applications is scary. But not impossible.
Build automation typically means using hacked-up build scripts to perform the common tasks. But the full benefit of CI is leveraged only if not just the easy bits are automated. This means building debug and release versions, building against several different versions of dependency libraries, running tests, packaging, and of course aggregating the results to communicate those to the community. And more. Hand-written build scripts quickly become unwieldy for this purpose, especially if the goal is to use the same script on all target platforms. On top of that, traditionally build scripts have been written in platform specific shell or batch file syntax, multiplying the effort to maintain them.
In the last three years, KDAB has developed a Python based framework for writing build scripts that does all this. It is already used in the current Akonadi and KDEPIM development. Build scripts written with it are cross-platform, and the framework encapsulates most of the subtleties of the ways software is built for the various target operating systems. The talk will showcase how an automated build can be set up, demonstrates the details of writing a simple and a not so simple build script, and explains how KDE library and application developers can utilize the framework to get things done, faster, and how to gain confidence when committing without even booting a Windows machine.
Mirko Boehm has been a KDE developer since 1997, and was a member of the KDE e.V. board from 1999 to 2006. He works at KDAB, where he is responsible for KDAB's products. He lives with his wife and two kids in Berlin, and enjoys reading non-technical books.