I’m very happy to announce that today we open-sourced Launchpad. This is the fulfilment of a commitment made a year ago, as well as an experiment in involving the community in the development of a hosted service.
Launchpad has long provided the Ubuntu operating system with an edge up on the competition, giving Ubuntu developers a unified platform for tracking code changes and bug reports in upstream software projects, and giving them convenient ways to package those upstreams for inclusion in Ubuntu. Now Launchpad itself is part of that same ecosystem.
But this is more than just a release of code. Launchpad’s strength is in cross-developer and cross-project communication, including communication even with projects hosted elsewhere (see the code imports and multi-project bugs features). On top of that, Launchpad has rich APIs — you don’t have to talk to Launchpad only through its web user interface, you can write programs to talk to it too. The combination of these two things means that opening up Launchpad gives the free software world the beginnings of an open, programmatic interface to its own infrastructure. I’m very curious to see what a software-savvy user community can do with that.
Going open source also positions Launchpad to be extremely responsive as a hosted platform. New Launchpad features already deploy quickly via the continuous beta-testing system, and a new version of Launchpad is rolled out every month. This regular release schedule ensures that new features reach users while still fresh in the developers’ minds, so that feedback is as effective as possible. Open sourcing Launchpad makes that rapid feedback cycle even more effective: now users can send in changes to the code itself, knowing that what they’re working with is very close to what’s running on the site.
Canonical will continue to run the Launchpad servers, taking care of production and deployment issues; opening up the code doesn’t mean burdening the users with all of that stuff. At the same time, we’ll institute processes to shepherd community-contributed code into the system, so that people who have ideas for how to improve Launchpad can quickly turn these ideas into reality. That’s going to involve some give-and-take — no development community ever has 100% agreement on what direction the codebase should go in, and in this case we have the added complication of running the hosted service at the same time. But I think that’ll work out organically. By this point, Launchpad has a pretty clear identity: it’s the platform that emphasizes cross-project and cross-developer information sharing — a social network with a purpose. We’re looking for improvements that increase the ease with which information (code, bug reports, design documents, etc.) moves between people and projects, and that’s probably what Launchpad’s users are looking for as well.