Making Daily Builds

At the end of every work day I check the wiki’s RecentChanges for cool new stuff. I mean, who doesn’t do that. I ran into some of James Westby’s work on daily builds, specifically this page on BzrBuilder and I was able to make a daily build of an upstream in about 5 minutes, that includes reading the docs! Here’s what I did. First off, pick a project. I picked Quickly, since it’s the new black.

Then install the bzr plugin like in the instructions. Then I created a recipe file like so: ` jorge@bojack:~/dailies$ cat quickly.recipe # bzr-builder format 0.2 deb-version 1.0+{revno}+{time} lp:quickly `

Then it’s ONE command:

bzr dailydeb quickly.recipe --key-id FFC27DD0 --dput ppa:jorge/ppa

Booyah, that’s it. Now, we got lucky here since Quickly is all in launchpad already and has a debian directory already in there. For other projects I suspect that grabbing them from vcs-imports and then merging in the packaging branch will also work, however I have not done this yet, but if you want to try it, the instructions are available. So if your project is already in launchpad you can start making dailies right now. Make sure you read up on more docs.

More than one way…

James isn’t the only person looking into dailies. The now-famous Fabien Tassin has been working on this as well, but taking a different approach. His scripts are available here:

https://code.edge.launchpad.net/~fta/+junk/ppa-scripts https://code.edge.launchpad.net/~fta/+junk/ppa-confs

Fabien’s daily builds have been insanely popular, the chromium PPA alone has over 10k users (and that’s just the fractional popcon numbers). Also, odd that people keep the wine build around, but whatever.

chromium-popcon-6

He also has them for the various mozilla projects, gwibber, and has just set up one for network-manager. Other people are using it as well. Since they were announced in February the Mozilla daily builds have about 10,000 users of Firefox and over 1000 of Thunderbird. (Sorry no graphs for that, but look at numbers.

Great Power, Great Responsibility

Alexander mentions in his blog post on the ideal type of person to use daily builds.

  • All advanced users that run the current ubuntu development release (e.g. karmic for now) that also want to focus their testing efforts on network-manager
  • Users that have filed a bug against NM which then got fixed upstream can verify the fix by trying our daily build.
  • Since we are targeting 0.8 for karmic the dailies reflect what will go into karmic soon. So if you like to run the bleeding edge and like to report issues right when they happen, this PPA is meant for you too.
  • We also have jaunty builds, but those are not yet fully tested. If you want and run jaunty please try them and report your findings back (of course, be sure that you know how to recover from not having network-manager network)

And James points out: “Obviously, as there is automation involved in the process the resulting packages can be risky as they haven’t had human verification. This means that there has to be some care taken with them, and the project and packager should do there best to ensure that the risks are minimized. They are also not something that an average user should be using. With due diligence the benefits can certainly outweigh the risks though.”

My view is that people will always want crack, and the availability of things like PPAs certainly lowers the barrier for users to use your software. But those people aren’t necessarily capable of giving you the kind of bug reports you need to fix problems, or things might be in a state where you know things are broken and don’t need bug reports spamming you every day. Chromium even tells you “Don’t file bugs without doing the work!”

I am interested in how upstreams perceive the idea of daily builds, I’m sure there are plenty of plusses and minuses to having them. However, I am convinced that Chromium’s spike in popularity in Ubuntu is because of the ease in which it is to use them. So the real question becomes, do the benefits of getting more testers outweigh people arguing in circles?