Thursday, November 15, 2007

openSUSE Build Service

Note: I drafted this neglected post in Feb '07, and since I'm talking about the build service at the Mono Summit, I decided to post as is.

I'm trying out the build service with the intent of migrating as much of Mono's packaging as possible.

I first heard about this service at BrainShare 2006 and thought it looked really neat. They did a demo build from the web client.

I just discovered the command line client: osc, and it's amazing! You can do local builds of your projects for multiple distributions! Then you can makes changes, tweak your files, do a local test build, and then commit your changes to the server. The server will add your packages to the queue and create a repository for download.

The package build system that Mono uses has cut out a lot of the manual work with building packages. The problem with it is that no one else besides me can use the system to build packages. (Someone could, but it would require creating jails, setting up ssh authentication, etc...). The great thing about the build service is that anyone that is a maintainer on the package can test a local build and submit changes from their local machine.

I've always been impressed with SuSE's autobuild system. It allowed for local builds and submitting build jobs to be done on the build farm. This is fine for SuSE builds, but I was unable to utilize this service for Mono packaging because I needed to build on several non-SUSE distros.

The buildservice has solved that. There are a few remaining issues that I'll need to sort out before I can move completely over. First of all, only x86 and x86_64 is supported. Plus, I'll need to figure out how to make previous releases available in the build service. (I'm assuming I can create a new namespace for each release, but I haven't looked into this).

This will also give better testing on the various distros, since for Mono, we only build on a lowest common denominator distro and use it everywhere for that arch.

Good job on SUSE's part, and all I gotta say is, "Wow" :)


Vlado said...

How does the SuSE build system compare with buildbot?



Wade Berrier said...

The buildsystem and buildbot have different aims.

Buildbot's mail goal is to continuously build new code as well as run test suites so that build breaks and regressions and found quickly.

The Buildservice is more for creating and publishing packages. Although, there's nothing stopping from automating uploading new code into the buildsystem to do nightly builds. You could also do nightly builds with the buildservice locally, without uploading new code.