One of the things that Launchpad is working on is the daily builds project, where we take a source branch, a recipe and turn it into a source package that can be built.
It turns out that this is quite hard because you need a secure environment to run the Bazaar recipe builder in. Fortunately we already have the Launchpad Build Farm! So, on January 11th the Soyuz and Codehosting teams, plus Launchpad Strategist Jono Lange and community contributor William Grant all met at the West Plaza Hotel in Wellington, New Zealand for a week-long coding sprint with the goal of getting a recipe build job through the build farm before the week was out.
The amount of work was pretty sizeable, but we’d already done quite a lot of preparatory work before leaving so that non-Soyuz developers could get involved from day one.
We split the task into a few areas:
- Writing the code that runs on the build slave itself
- Job dispatching
- Job collection
- Job candidate selection
- Creating a generalised build infrastructure to make it easy to plug in new job types
The team split into coding pairs that mostly lasted the week and there were no bloodied noses! We had a strict rule that no pair could contain two people from the same Launchpad team, so that we could spread the knowledge around better. This worked out really well.
The local coffee shop certainly had plenty of custom that week! But by the end of it, on Friday afternoon at about 5:45pm, we finally got a recipe build job to run through a local Launchpad instance on William’s laptop and eventually turned into a binary package. Success!
We’ll be building on this work in the next couple of months so that it has a UI that will allow a user to click on a branch and get it built and uploaded to their PPA. It’s all very cool!
Finally, huge thanks to everyone involved, including the hotel. It was the best wifi/internet anyone had ever had at any hotel, ever.