Speaker
Description
Launchpad is an open source suite of tools that help people and teams to collaborate on software projects and distributions. Launchpad is the centerpiece of Ubuntu development and provides various features and tools to develop and release every Ubuntu version and maintain it. But Launchpad is also free to use for all open source projects and there are many projects that are hosted on Launchpad.
Launchpad offers various features like code hosting (git and bazaar), bug
tracking etc. But it has a lot of powerful and useful features that aren't
well-known. This talk will shed some light on some of those lesser-known
features.
Bug tracker federation
Launchpad is good at handling aggregate distributions of software, tracking and federating information with other places where similar software is maintained - for example remote bug tracking or groups of projects or a distribution in Launchpad itself, which allows tracking things across
multiple entities all in one place. For example, this bug tracks the status of a remote execution vulnerability in the zeromq3
package in Suse, Debian, and Ubuntu. For more details, see https://help.launchpad.net/Bugs/MultiProjectBugs.
Launchpad build infrastructure
Launchpad has a huge build farm with hundreds of builders for 8 architectures, that are capable of building various artifacts like deb packages, snaps, charms, OCI images etc. This infrastructure is provided for use by the Ubuntu and Launchpad user community to reliably build, package, and publish software for various architectures and platforms free of cost. The riscv64
architecture, which is the current/next hot architecture in the industry and was restricted to builds from trusted users only, is now open for everyone.
Recipes
Launchpad also makes it easy to automate building these types of packages using recipes. There is support for creating recipes for deb packages, snaps, charms etc., that allow automating the building and publishing of software packages of various formats, whenever a change to the associated VCS repository is made. This allows developers to ship changes to users quickly. Even if the source is hosted outside Launchpad, recipes can be set up on Launchpad by setting up a code import for the external repository and setting up the recipe to use that for the builds.
Archive snapshots
Since Launchpad is the platform and the engine powering Ubuntu development, release and maintenance processes, it tracks the details about every package uploaded to the Ubuntu archive or to PPAs and maintains the history of every change. With that, Launchpad is able to provide a point-in-time state information about the Ubuntu archive or a PPA. Using this, we now have an archive snapshot service for the Ubuntu archive and the PPAs at snapshot.ubuntu.com and snapshot.ppa.launchpadcontent.net respectively. We are working on extending this to various other archives like the ones corresponding to ESM and Ubuntu Pro.
Launchpad CI
Launchpad has a built-in CI functionality that is powered by lpci. It is already being used by a lot of projects in the community for running pre-merge checks on their merge proposals. We are working on adding more useful features to it and making it better.
Automation using the Launchpad API
Did you know that Launchpad has a comprehensive API, documented at https://api.launchpad.net, that allows doing almost everything that can be done via the browser using a Launchpad account with the relevant permissions? Launchpad provides a Python library, launchpadlib
, a useful interactive command-line utility lp-shell
to play with the API easily.
Summary
Do you want to know what Launchpad is? If you know about it, do you want to become a power user and make the most out of it? This talk highlights 6 little-known features in Launchpad and how you can make use of them.
Things to know or prepare for this session
Some familiarity with Launchpad would be useful.
What audience can learn
The audience will learn about 6 little-known features in Launchpad that will help them make the most out Launchpad.
Biography
Guruprasad is a software engineer at Canonical, working for the Launchpad team, who is passionate about computers and technology. He is a free software enthusiast and uses GNU/Linux extensively on personal computers and to self-host various services. He lives in Bengaluru, India.
Difficulty level | Intermediate |
---|