August 31, 2024 to September 2, 2024
JECRC Foundation
Asia/Kolkata timezone

6 little-known features: How to make the most out of Launchpad

Sep 1, 2024, 11:35 AM
30m
Main hall (JECRC Foundation)

Main hall

JECRC Foundation

Shri Ram ki Nangal, via Sitapura RIICO Tonk Road, Jaipur, Rajasthan 302 022 India
Talk Cloud and Infrastructure

Speaker

Mr Guruprasad Lakshmi Narayanan
Canonical

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

Presentation materials