Canonical, the company behind the Ubuntu Linux distribution, announced this week that it has opened the source code of its Launchpad project hosting service. This will enable third-party developers to participate in improving the software and could also make it a lot more attractive as a project hosting option.

Launchpad provides much of Ubuntu's underlying development infrastructure, including bug tracking, code hosting, project management, and localization tools. Canonical has broadly encouraged open source software developers to bring their own projects to Launchpad and take advantage of this functionality. Launchpad itself, however, was a proprietary service and the source code was not available. This became a source of friction between Canonical and the open source software community, deterring some potential adopters. Canonical's move to completely open the Launchpad source code will largely address the concerns expressed by prospective adopters.

Canonical began the long process of opening Launchpad in 2007 when it released some key components, such as the Storm object-relational mapping framework, under open source licenses. During a keynote last year at the 2008 OSCON conference, Canonical CEO Mark Shuttleworth revealed plans to open most of the Launchpad source code within approximately twelve months.

Despite warnings about the possibility of delays, Canonical has succeeded in delivering the Launchpad code within the promised timeline. In a surprising show of commitment to open source values, Canonical has released the entire code base, including several pieces that it had originally intended to keep to itself for competitive reasons, such as the Soyuz build system and package management component.

"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," wrote Canonical's Karl Fogel in a statement at the official Canonical blog.

In a follow-up post with additional technical details at the Launchpad blog, Fogel described the scope of the code release and explains how developers can participate in the project.

"We released Launchpad today under the GNU Affero General Public license, version 3," he wrote. "Note that although we had previously announced that we'd be holding back two components (codehosting and soyuz), we changed our minds: they are included—all the code is open."

The GNU Affero General Public License (AGPL) is a special variant of the GPL that is intended specifically for open Web services. Those who deploy code that is licensed under the AGPL are obligated by the terms of the license to disclose their modifications and improvements. This ensures that the freedom of users to study, modify, and redistribute the source code is preserved even when it is hosted on a server rather than shipped as a product.

The AGPL is part of a broader movement to open the Web by fostering interoperability and enabling individuals to self-host their own technical infrastructure. Launchpad reflects the philosophy of the open Web in other key ways in addition to its adoption of the AGPL. It will facilitate data portability by making its underlying information accessible to third-party software through APIs.

Launchpad is a very powerful and impressive hosting service with a wide range of tightly integrated features and strong support for inter-project collaboration. Several highly prominent open source software projects use Launchpad as their primary hub of development, including MySQL and Zope. I use it extensively myself for my own small projects. Now that Launchpad is open source and will be able to benefit from community participation in ongoing development, the rate at which it evolves and attracts adopters will likely increase. We could also see the emergence of some very compelling derivatives or mashups as the code base is repurposed by independent developers and other Linux distributors.