Early this week, Canonical, the company behind Ubuntu Linux, will be releasing its Launchpad Personal Package Archive service, a new way for developers to build and publish packages of their code, documentation, artwork, themes and other contributions to the Ubuntu environment on desktop, server and now mobile environments.
PPA, which has been in beta since July, is a major part of Ubuntu’s own development system, Launchpad. Launchpad is a set of integrated tools that support collaboration and community formation. These include a team management tool, a bug tracker, code hosting, translations, a blueprint tracker and an answer tracker. Its best feature, the bug-tracker, works by trying to track separate conversations about the same bug in external project bug trackers, such as Bugzilla, Roundup, SourceForge and the Debian Bug Tracking System.
PPA enables solo and small groups of open-source software developers to collaborate on sets of packages and publish their own versions of their own or other free software programs. In PPA, developers can upload Ubuntu source packages to be built and published as an apt repository by Launchpad. The end results are programs that ordinary users can download and run on Ubuntu on any Ubuntu-supported architecture. In addition, PPA can create binary Ubuntu Linux compatible files for the x86 and AMD64 architectures.
PPA users get up to 1GB of Personal Package Archive space, which works as a standard Ubuntu software package repository. They also get a Web front-end where Launchpad users can browse and search for their programs.
During the Beta test, PPA developers have said that they appreciated the opportunity to get their programs to a much wider number of users testing than is normally the case with application packaging. Canonical also claims that PPA-developed packages are easier to deploy in complex environments and that it makes updating newer applications in older Ubuntu distributions much easier.
All this means that PPA gives developers the chance to work with their users directly. In turn, users who are interested in a particular program or set of programs can make a single update to their system to enable them to install packages from PPAs. Those users receive automatic updates whenever new versions of the packages are built and published in their particular PPAs.
Christian Robottom Reis, who has led the PPA effort within Canonical’s Launchpad project, explained, “Many developers want to modify existing packages, or create new packages of their software. The PPA service allows anyone to publish a package without having to ask permission or join the Ubuntu project as a developer.”
“This is a tremendous innovation in the free software community. We hope that PPA will make it easier for developers and development teams who have excellent ideas to get their work into the hands of users for testing and feedback. They also get to mix with experienced packagers to improve their skills. PPA is a build system, a publishing system and a community experience. We are also really excited to add the ability to create packages aimed at the mobile environment from launch.”
Personal Package Archives also make it easy for developers to test new and experimental software builds. Matt Zimmerman, Canonical’s CTO, said, “Adding a new feature to a package or building it against a new version of a system library requires extensive testing. A PPA allows a developer to form a community of testers who are interested in their changes. The testing community can install the packages, run them for the test period and then remove them cleanly from their system. If the developer releases an updated version, the Ubuntu Update Manager will automatically notify those testers and enable them to update to the newer versions with a single click. This creates a very efficient environment for developers and testers to improve their favorite software.”
The Launchpad PPA Service will be released for general use on November, 2007 in line with the regular Launchpad release cycle. The PPA Service will be available at the PPA Web site.