Meet Ian Booth
Published by Matthew Revell October 26, 2010 in Meet the devs
We’ve seen quite a few new faces in Canonical’s Launchpad team lately. Ian Booth is one of them and is now part of the Launchpad Code team.
I asked him a bit about who he is and what he is working on.
Matthew: What do you do on the Launchpad team?
Ian: I only recently started working on Launchpad. I work on the “Code” team, reporting to Tim Penhey.
We deliver functionality associated with managing and importing branches, merge proposals, code reviews; Bazaar-Launchpad integration; the XML-RPC and web services API etc.
Personally, I’ve also done some work on improving the menu rendering performance and other infrastructure type things.
Matthew: Can we see something that you’ve worked on?
Ian: There’s not a great deal that’s visible to the end user (or what could be considered a headline feature) just yet.
Something I could mention is that I’ve done work on improving how lp: short alias URLs (eg lp:firefox/trunk) are handled. If an invalid link is processed, the user is redirected back to the referring page with a nice message instead of getting an oops page.
Matthew: Where do you work?
Ian: I work from home in Brisbane, Australia.
Matthew: What can you see from your office window?
Ian: I can see the kids’ trampoline and our back garden (or should that be all the weeds).
Matthew: What did you do before working at Canonical?
Ian: I worked for 10 years at Caterpillar, developing an onboard/office system to control the real time running of large open cut mining operations, using cool technologies like GPS, mesh wireless networking and embedded onboard computers. I’ve also worked as a data communications engineer, project manager, and also tried my hand a getting a startup company up and running (sadly, without success).
Matthew: How did you get into free software?
Ian: The use of open source software has been critical to the success of various projects I have worked on. A large factor for me in pushing the use of such software on these projects has been the need to be able to diagnose and fix issues, and develop customisations/enhancements, which would otherwise have been at the mercy of the vendors’ release schedule or otherwise out of our control.
Matthew: What’s more important? Principle or pragmatism?
Ian: Can I say both? I don’t think they have to necessarily be mutually exclusive. But I would err on the side of pragmatism, so long as it fitted within my moral boundaries.
I suspect one context in which you may be framing the question could be the inclusion of binary blobs and so called non-free components within otherwise open source/free software distributions like Ubuntu. In those cases, so long as it’s legal to do so, I say give the end user the functionality they need every time.
Matthew: Do you/have you contribute(d) to any free software projects?
Ian: I’ve contributed features and/or bug fixes to Sofia (a web framework which was popular around 10 years ago), Hibernate, Zope (only a very small fix so far but hopefully more as I get more knowledge), the Bazaar plugin for Intellij, and other (much) smaller scale projects.
Matthew: Tell us something really cool about Launchpad that not enough people know about.
Ian: Hmmm. That’s a difficult question given my short time on the project. One feature I found really useful is the degree of integration between Launchpad and Bazaar, especially the recent improvements to allow lp: alias names to be used to refer to branches.
Matthew: Is there anything in particular that you want to change in Launchpad?
Ian: I would love to modernise the GUI and/or look and feel to make it more “sexy”.
Matthew: Thanks Ian!
Launchpad read-only 22.00 UTC 13th October 2010
Published by Matthew Revell October 12, 2010 in Notifications
Launchpad’s web interface will be read-only, with other aspects offline, for around two hours on Wednesday the 13th of October, while we roll-out new Launchpad code.
Starts: 22.00 UTC 13th October 2010
Expected back: 00.00 UTC 14th October 2010
Enabling Automatic Bug Expiry
Published by Deryck Hodge October 6, 2010 in Bug Tracking, General
I recently sent out an email to Launchpad users who had selected the “expire incomplete bug reports” option for their project, explaining that we would be enabling this feature again in Launchpad. Well, actually, I sent out a lot of emails. This happened partly due to poor design of the script I wrote to send the emails and partly due to my own error. I am sorry for the inconvenience this may have caused anyone. We are taking steps to ensure this sort of poorly executed mass emailing doesn’t happen again on Launchpad.
For those who haven’t heard, the rest of this blog post is meant to fill you in on the coming changes.
What is about to change?
Launchpad has always advertised that we auto-expire incomplete bugs matching certain conditions, but we haven’t done this for awhile now. We are ready to turn this feature back on. This means that bugs that are considered inactive will have their status automatically changed from Incomplete to Expired. For more detail on how Launchpad determines if a bug is inactive, visit our Bug Expiry help page.
This change will take effect in about two weeks, sometime during the week of 18 October 2010.
What this means to you?
If you maintain a project in Launchpad and you want this feature, you need to ensure that the Expire “Incomplete” bug reports when they become inactive option is selected for your project on it’s Configure bug tracker page. We have disabled it for all projects since it has been selected by default but inactive up until now. Sometime before the week of 18 October, you’ll need to re-enable this option if you want to take advantage of automatic bug expiry.
If you maintain a project in Launchpad and you do not want this feature, you do not have to do anything.
For maintainers of Ubuntu packages in Launchpad, we have left this option enabled. Getting this feature re-enabled was driven largely by requests from Ubuntu developers, so we have not changed the config options for Ubuntu packages in Launchpad.
If you have any other questions about this, feel free to leave a comment here or contact me on Launchpad.
Launchpad read-only 08.00 UTC 7th October 2010
Published by Matthew Revell in Notifications
Launchpad’s web interface will be read-only, with other aspects offline, for less than 15 minutes from 08.00 UTC on Thursday the 7th of October. During this time we’ll be completing our upgrades to Launchpad’s database servers.
Starts: 08.00 UTC 7th October 2010
Expected back before: 08.15 UTC 7th October 2010
This completes our current run of database server maintenance.
Continuous deployment in Launchpad
Published by Robert Collins October 5, 2010 in General
It currently takes an average of two weeks for new changes that have been developed for Launchpad to become live on the Launchpad site.
We’re working on changing this and making the way we deploy Launchpad simpler and more reliable at the same time.
In the first generation of this, we are targeting changes that do not alter the data model, and we’re aiming for a delay of 12-16 hours. Longer term we’ll be aiming for a few hours.
If you are a ‘beta‘ user of Launchpad, this has one primary, and very important change: the ‘edge’ site is going to be removed. We now have a process for validating changes that would previously have been validated on edge using a new staging site. The edge site previously received unvalidated updates and would from time to time have issues as a result. If you are not a ‘beta’ user, then nothing should change for you at all, except that you will notice site changes more often, with no downtime, rather than once a month after downtime.
Sometime in the next few weeks the redirect to ‘edge’ will be removed (it only affected beta users). Instead of a redirect to ‘edge’, the main website will offer you any unreleased functionality, and the ‘disable edge redirect’ link will turn off that functionality for a moderate time period. Following that we will put in place a redirect from ‘edge’ to the normal ‘launchpad.net’ across all of the ‘edge’ servers, and move the servers to the main site server farm.
Launchpad read-only 08.00 UTC 6th October 2010
Published by Matthew Revell in Notifications
Launchpad’s web interface will be read-only, with other aspects offline, for less than 15 minutes from 08.00 UTC on Wednesday the 6th of October. During this time we’ll be making upgrades to Launchpad’s database servers.
Starts: 08.00 UTC 6th October 2010
Expected back before: 08.15 UTC 6th October 2010
Roughly 24 hours after this read-only time there’ll be another short period where Launchpad is read-only. This will enable us to complete the upgrade work and we’ll announce the exact times separately.
More Build Farm Improvements
Published by Julian Edwards October 4, 2010 in Code, Cool new stuff, PPA
Continuing with the recent improvements to the build farm – Jelmer has made another massive one.
The last major scalability problem that we had was one where the whole farm was blocked when a single builder was ready to upload a build. In the case of large packages, like the kernel, the manager process could block for over a minute while it waited for the upload processor to unpack the package and verify its contents.
Jelmer’s work has decoupled the upload processing from the build farm manager process. What happens now is that the files collected from the builder are thrown into a staging queue area and then the manager process immediately continues with polling the rest of the builders, unblocked. A cron job will then process the builder upload queue at 1 minute intervals.
You can see the dramatic effect this has had on the overall queue for the PPA builders here:

This is quite an incredible improvement as you can see! But we’re not stopping there, we’re currently doing a massive refactoring of the builder dispatching code so it’s all fully asynchronous. When this is all done we’re going to be in superb shape to support an increase in load that’s anticipated from the increasing number of people using the package recipes.
Code hosting/browsing unavailable 14.00 UTC 23rd September 2010
Published by Matthew Revell September 23, 2010 in Notifications
Launchpad’s code hosting and browsing will be offline for 15 minutes today for emergency hardware maintenance.
Going offline: 14.00 UTC 23rd September 2010
Expected back: 14.15 UTC 23rd September 2010
We’re sorry for the short notice of this downtime.
Meet Rob Collins
Published by Matthew Revell September 20, 2010 in Meet the devs
Rob Collins joined the Launchpad team recently. Here’s a bit about him.
Matthew: What do you do on the Launchpad team?
Rob: I’m the Architect for Launchpad – I’m responsible for guiding the development and technology choices we make so that Launchpad can meet the needs of our stakeholders, users, developers and system administrators.
Practically speaking this means that I do a bit of everything: if I don’t, I can’t really feel what’s going on across the system, and being well informed is key to making good decisions / giving good advice.
Matthew: Can we see something that you’ve worked on in Launchpad?
Rob: A few recent examples of my personal code are: email list moderation pages are now batched, so should time out much less often if a list gets a lot of mail to moderate; I’ve been poking at bugs and bug API performance quite a bit, and the /attachments API is significantly faster now; the /messages API is going to be faster soon — and the main bugs page has had several seconds of overhead shaved off it for many bugs. I’ve set up a page with some of the things I think will help us with building and running Launchpad as we move forward.
Matthew: Where do you work?
Rob: I work from home like so many of us do; I recently moved to Rangiora, NZ. Yes, we were 40km or so from the epicentre.
Matthew: What can you see from your office window?
Rob: Grass, fence, roofs and sky; shorly to be grass, hedge and sky 😉
Matthew: What did you do before joining the Launchpad team?
Rob: Most recently I was one of the developers of Bazaar at Canonical, working mainly on the deep guts of the system.
Matthew: You’ve dedicated your Tuesdays to performance issues in Launchpad. Tell us about some of the improvements you’ve made.
Rob: So the ones I’ve listed above are pretty nice.
Here’s a list of specific timeout bug fixes I’ve done. More importantly though, we’ve been working on better diagnostics gathering for timeouts, and that work is making things easier and easier to analyse.
Matthew: What else are you working on right now?
Rob: Release features when they are done — this change to how we develop and rollout launchpad is a key change to speeding up the delivery of features. It’s not the full story, because we don’t (yet) have a plan for dealing with schema changes without downtime — that’s in the slightly longer term pipeline.
Matthew: What’s the next big thing you want to tackle in Launchpad?
Rob: Downtime-free schema changes; this should permit us to deliver new functionality much more rapidly.
Matthew: What experiences from your time in the Bazaar team will help with your new-ish role?
Rob: Ah! I spot a leading question. One of the interesting differences between Bazaar and Launchpad is that nearly every operation in Bazaar exercises an entire stack from scratch: there’s no active DB server with loaded caches ready and primed to go. That really got me thinking, continually, about the overheads involved in the entire stack : I think we need that same thought and consideration in Launchpad as we work on performance and deployment.
Matthew: How can community contributors help with what you’re working on?
Rob: Many, many ways!
Firstly, there’s the current timeout bugs. All of these can be fixed by patches … the exact patch and how hard it is to write will of course vary 🙂
Many timeouts are actually pretty shallow issues — but others will require schema changes and so forth. I’m delighted to help mentor folk working on any part of Launchpad.
The process and deployment changes we’re doing are mainly a sysadmin/deployment issue and not as amenable to contribution (by anyone not one of our sysadmins).
Matthew: How did you get into free software?
Rob: Thats a long story 🙂 Gradual love affair starting with demo code back on an Amiga A500.
Matthew: What’s more important? Principle or pragmatism?
Rob: Case by case basis 😉
Matthew: What free software projects do you contribute to?
Rob: Currently I’m still swimming for the surface in Launchpad 😉
Recently I’ve contributed to:
- Launchpad
- Bazaar
- A variety of python testing projects:
- testtools,testresources,testscenarios,fixtures,testrepository,
unittest in Python itself - Storm
- Ubuntu and Debian
The list going way back is longer … but also mainly of historical interest.
Matthew: Tell us something really cool about Launchpad that not enough people know about.
Rob: Recipes. Recipes are cool.
Everything in Launchpad
Published by Matthew Revell September 17, 2010 in General
Over the summer, Jono and I have been compiling a list of all the features in Launchpad.
While the help wiki and the heads of various members of the Launchpad team are a pretty good guide to everything that’s in Launchpad, we haven’t had a canonical, comprehensive, list of Launchpad’s features. Obviously having that one page makes it easier to keep track of what’s there and to think about what Launchpad is and what it isn’t.
So, what do we consider to be a feature? Really, it’s anything where someone can interact with Launchpad or where bugs can live. Simple as that.
If you think something’s missing from this list, or needs more explanation, please do go ahead edit the wiki page.


