Caution

The Packaging and Development guide is currently undergoing a major overhaul to bring it up to date. The current state you are seeing now is a preview of this effort.

The current version is unstable (changing URLs can occur at any time) and most content is not in properly reviewed yet. Proceed with caution and be aware of technical inaccuracies.

If you are an experienced packager and would like to contribute, we would love for you to be involved! See our contribution page for details of how to join in.

Launchpad

Launchpad is a software collaboration and hosting platform similar to platforms like GitHub. Launchpad is also the platform where the Ubuntu project lives. This is one of the major differences between the Ubuntu and Debian infrastructure.

Note

Although the Ubuntu project is probably the largest user base of Launchpad, Launchpad can be used by anyone.

Launchpad features, among others, are:

While platforms like GitHub put users and groups at the top level, Launchpad puts projects at the top level. If you take Ubuntu as an example, you can see that you can access it at the top level: https://launchpad.net/ubuntu. Users and groups begin with a ~, for instance https://launchpad.net/~ubuntu-foundations-team.

Why not use platforms like GitHub?

Although Launchpad’s UI and UX are a bit dated, Launchpad offers an unparalleled Ubuntu package building and hosting infrastructure that no other platform offers. Even simple requirements like building for architectures like PowerPC, s390x, or RISC-V can not be fulfilled by GitHub or similar platforms.

Personal Package Archive (PPA)

Launchpad PPA repositories allow you to build installable Ubuntu packages for multiple architectures and to host them in your own software repository.

Using a PPA is straightforward; you don’t need the approval of anyone, therefore users have to enable it manually. See how to Install packages from a PPA.

This is useful when you want to test a change, or to show others that a change builds successfully or is installable. Some people have special permission to trigger the autopkgtests for packages in a PPA.

Tip

You can ask in the IRC channel #ubuntu-devel if someone can trigger autopkgtests in your PPA if you don’t have the permission.

git-based workflow for the development of Ubuntu source packages

Launchpad hosts a git-ubuntu importer service that maintains a view of the entire packaging version history of Ubuntu source packages using git repositories with a common branching and tagging scheme. The git-ubuntu CLI provides tooling and automation that understands these repositories to make the development of Ubuntu itself easier.

You can see the web-view of these repositories when you click on the “Code” tab of any source package on Launchpad, for example, in the “hello” source package as shown in the following screenshot:

Screenshot of the Launchpad Code page for the hello source package with an arrow pointing to the Code tab.

Text markup

Launchpad has some markup features that you can use when you e.g. report bugs, write comments, create merge proposals.

See the Launchpad text markup reference for more details.

Getting help

If you need help with Launchpad you can choose any of the following methods:

IRC chat rooms

On the irc.libera.chat IRC server you will find the #launchpad channel, where you can ask the Launchpad team and the Ubuntu community for help.

Mailing lists

If you prefer to ask for help via email, you can write to the launchpad-users mailing list (launchpad-users@lists.launchpad.net).

Ask a question

As mentioned above, Launchpad has a community FAQ feature (called “Answers”) where you can see other people’s questions or ask one yourself. Use can use the Answers feature of the Launchpad project on Launchpad itself.

Report a bug

If you encounter any bug related to Launchpad, you can submit a bug report to the Bug Tracking System of the Launchpad project on Launchpad itself.

Staging environment

Before new features are deployed to the production environment they get deployed to a staging environment where the changes can get tested.

You can use the staging environment, to try out Launchpad features.

API

Launchpad has a web API that you can use to interact with its services. This makes it easy for developer communities like Ubuntu’s to automate specific workflows.

You can find the reference documentation for the web API on Launchpad.

The Launchpad team even created an open source Python library, launchpadlib.

Resources