# Launchpad > This is the documentation for Canonical Launchpad, an open source platform that > enables open source developers to collaborate with others to build and publish open > source software. 2026 CC-BY-SA, Canonical Ltd. ## Pages in this subsection - [Launchpad manual for developers](https://ubuntu.com/docs/launchpad/developer/index.html.md): Comprehensive guide for Launchpad developers covering setup, bug fixing, feature development, and contributing changes. - [Tutorials](https://ubuntu.com/docs/launchpad/developer/tutorials/index.html.md): Step-by-step tutorials to help you learn Launchpad development practices and workflows. - [Creating a new page in Launchpad](https://ubuntu.com/docs/launchpad/developer/tutorials/creating-a-page-in-launchpad/index.html.md): Step-by-step tutorial for adding custom pages in Launchpad. - [Building charms in Launchpad](https://ubuntu.com/docs/launchpad/developer/tutorials/building-charms-in-launchpad/index.html.md): Learn how to build charms in Launchpad for all Ubuntu architectures using Charmcraft and publish them to Charmhub efficiently. - [How-to guides](https://ubuntu.com/docs/launchpad/developer/how-to/index.html.md): Comprehensive how-to guides for Launchpad development covering setup, common tasks, development tips, and operational procedures. - [Get started](https://ubuntu.com/docs/launchpad/developer/how-to/get-started/index.html.md): Overview of how to get started with Launchpad development. - [Get the source code](https://ubuntu.com/docs/launchpad/developer/how-to/get-started/get-source-code/index.html.md): Launchpad’s source code exists in a Git repository, and you can clone it using - [Setting up and running Launchpad (quickstart)](https://ubuntu.com/docs/launchpad/developer/how-to/get-started/running-quickstart/index.html.md): Quick guide to setting up and running Launchpad for development. - [Setting up and running Launchpad (advanced)](https://ubuntu.com/docs/launchpad/developer/how-to/get-started/running/index.html.md): Advanced guide to setting up and running Launchpad. - [Launchpad database setup](https://ubuntu.com/docs/launchpad/developer/how-to/get-started/database-setup/index.html.md): Set up PostgreSQL databases for Launchpad development using automated scripts or manual configuration. - [How to develop with Buildd](https://ubuntu.com/docs/launchpad/developer/how-to/get-started/develop-with-buildd/index.html.md): How to develop with Buildd using LXD VM. - [How to use Soyuz locally](https://ubuntu.com/docs/launchpad/developer/how-to/get-started/use-soyuz-locally/index.html.md): Set up and use Soyuz locally for package building and testing. - [Operate Launchpad](https://ubuntu.com/docs/launchpad/developer/how-to/operate-launchpad/index.html.md): Operational guides for running Launchpad instances covering build farm management, user administration, and deployment procedures. - [Getting an overview of Launchpad’s build farm](https://ubuntu.com/docs/launchpad/developer/how-to/operate-launchpad/getting-overview-of-build-farm/index.html.md): How to get an overview of Launchpad's build farm infrastructure using web views or command-line tools. - [Checking availability of Launchpad frontends](https://ubuntu.com/docs/launchpad/developer/how-to/operate-launchpad/checking-availability-of-launchpad-frontends/index.html.md): Guide to checking for availability of individual Launchpad frontend servers. - [Manage users and teams in development environments](https://ubuntu.com/docs/launchpad/developer/how-to/operate-launchpad/manage-users/index.html.md): Guide to managing users and teams in Launchpad development environments. - [Create job to publish artifact](https://ubuntu.com/docs/launchpad/developer/how-to/operate-launchpad/create-job-publish-artifact/index.html.md): Create automated Jenkins jobs to build and publish project artifacts. - [Triaging Launchpad project bugs](https://ubuntu.com/docs/launchpad/developer/how-to/operate-launchpad/triage-bugs/index.html.md): Guide to triaging Launchpad project bugs. - [Landing updates for Loggerhead](https://ubuntu.com/docs/launchpad/developer/how-to/operate-launchpad/land-update-for-loggerhead/index.html.md): How to land updates for the Loggerhead Bazaar code browser. - [Building and publishing Launchpad development LXD images](https://ubuntu.com/docs/launchpad/developer/how-to/operate-launchpad/building-lpdev-images/index.html.md): Guide to building and publishing Launchpad LXD development images using LXD Image Builder and debootstrap. - [How to use lp-shell](https://ubuntu.com/docs/launchpad/developer/how-to/operate-launchpad/use-lp-shell/index.html.md): Use the lp-shell CLI tool to access the Launchpad API. - [Common development tasks](https://ubuntu.com/docs/launchpad/developer/how-to/common-development-tasks/index.html.md): Overview of common Launchpad development tasks. - [Fixing bugs](https://ubuntu.com/docs/launchpad/developer/how-to/common-development-tasks/fixing-bugs/index.html.md): Guide to getting started on fixing bugs in Launchpad. - [Contributing changes](https://ubuntu.com/docs/launchpad/developer/how-to/common-development-tasks/contributing-changes/index.html.md): Complete guide to contributing changes to Launchpad. - [Using an updated dependency](https://ubuntu.com/docs/launchpad/developer/how-to/common-development-tasks/use-updated-dependency/index.html.md): Update Launchpad dependencies using rocketfuel. - [Create a database patch](https://ubuntu.com/docs/launchpad/developer/how-to/common-development-tasks/create-a-db-patch/index.html.md): Comprehensive step-by-step guide to create database schema patch. - [Applying database schema changes](https://ubuntu.com/docs/launchpad/developer/how-to/common-development-tasks/apply-schema-changes/index.html.md): Step-by-step guide to applying database schema changes to Launchpad's databases. - [Importing an Ubuntu package](https://ubuntu.com/docs/launchpad/developer/how-to/common-development-tasks/importing-an-ubuntu-package/index.html.md): Guide to importing Ubuntu packages into your local Launchpad instance. - [Launchpad development tips](https://ubuntu.com/docs/launchpad/developer/how-to/launchpad-development-tips/index.html.md): Essential Launchpad development tips covering configuration, debugging, testing, security policies, and performance optimization. - [Updating the global configuration for tests](https://ubuntu.com/docs/launchpad/developer/how-to/launchpad-development-tips/update-configuration-for-testing/index.html.md): Update Launchpad's global configuration for tests. - [Handling security policies](https://ubuntu.com/docs/launchpad/developer/how-to/launchpad-development-tips/security/index.html.md): Guide on implementing security policies in Launchpad. - [Testing CLI scripts](https://ubuntu.com/docs/launchpad/developer/how-to/launchpad-development-tips/testing-scripts/index.html.md): How to test CLI scripts in the context of Launchpad. - [Handling exceptions](https://ubuntu.com/docs/launchpad/developer/how-to/launchpad-development-tips/exceptions/index.html.md): Best practices for handling exceptions in Launchpad; what to catch, what to avoid, and proper error logging with OOPS. - [Preserving query count](https://ubuntu.com/docs/launchpad/developer/how-to/launchpad-development-tips/preserve-query-count/index.html.md): Ensure constant database query counts when reading or creating multiple items. - [Profile Launchpad performance](https://ubuntu.com/docs/launchpad/developer/how-to/launchpad-development-tips/profile-launchpad/index.html.md): Quick guide to profiling performance in Launchpad. - [Running Launchpad with Chameleon template engine](https://ubuntu.com/docs/launchpad/developer/how-to/launchpad-development-tips/chameleon/index.html.md): Configure and run Launchpad with the Chameleon template engine. - [Launchpad API docs generation](https://ubuntu.com/docs/launchpad/developer/how-to/launchpad-development-tips/launchpad-api-docs/index.html.md): How to generate Launchpad API documentation. - [How to use codehosting locally](https://ubuntu.com/docs/launchpad/developer/how-to/launchpad-development-tips/codehosting-locally/index.html.md): Set up and run the complete Bazaar codehosting stack locally. - [Renaming a database table](https://ubuntu.com/docs/launchpad/developer/how-to/launchpad-development-tips/rename-database-table/index.html.md): How to rename database tables in Launchpad. - [MockIo library](https://ubuntu.com/docs/launchpad/developer/how-to/launchpad-development-tips/mockio/index.html.md): Use the MockIo library to test JavaScript code that makes Y.io calls. - [Debug](https://ubuntu.com/docs/launchpad/developer/how-to/debug/index.html.md): Launchpad’s architecture means that debugging issues can get complicated. - [Debug tests with Visual Studio Code](https://ubuntu.com/docs/launchpad/developer/how-to/debug/debug-with-visual-studio-code/index.html.md): Set up Visual Studio Code for debugging Launchpad. - [Debug stories/pagetests](https://ubuntu.com/docs/launchpad/developer/how-to/debug/debugging/index.html.md): Debug Launchpad pagetests using pdb breakpoints. - [Troubleshoot breakpoint issues when running multiple test layers](https://ubuntu.com/docs/launchpad/developer/how-to/debug/troubleshoot-breakpoint-issues-when-running-tests/index.html.md): Troubleshoot pdb.set_trace breakpoint issues when running multiple test layers. - [Testing](https://ubuntu.com/docs/launchpad/developer/how-to/testing/index.html.md): How-to guides for testing Launchpad: running, writing, and measuring the coverage of tests. - [Running tests](https://ubuntu.com/docs/launchpad/developer/how-to/testing/running-tests/index.html.md): How to run Launchpad's test suite locally, including running the whole suite, selecting specific tests and layers, and speeding up runs. - [Reference](https://ubuntu.com/docs/launchpad/developer/reference/index.html.md): Coding conventions and service reference for Launchpad developers. - [Python style guide](https://ubuntu.com/docs/launchpad/developer/reference/python/index.html.md): Python coding style guide for Launchpad development. - [Tests style guide](https://ubuntu.com/docs/launchpad/developer/reference/tests/index.html.md): Summary of conventions for Launchpad Tests. - [CSS style guide](https://ubuntu.com/docs/launchpad/developer/reference/css/index.html.md): CSS and SCSS style guide for Launchpad development. - [Tagging bugs about Launchpad](https://ubuntu.com/docs/launchpad/developer/reference/bug-tags/index.html.md): Standard bug tags reference for Launchpad's Bug Tracker. - [Build farm](https://ubuntu.com/docs/launchpad/developer/reference/services/build-farm/index.html.md): Reference doc linking to resources related to the Launchpad build farm including documentation, git repositories, and bug trackers. - [Signing service](https://ubuntu.com/docs/launchpad/developer/reference/services/signing/index.html.md): Reference document for Launchpad's signing service with links to documentation, deployment information, git repository, and bug tracker. - [Fetch service](https://ubuntu.com/docs/launchpad/developer/reference/services/fetch-service/index.html.md): Reference document for the Fetch service. Provides links to logs, git repositories, documentation, etc. - [Buildbot](https://ubuntu.com/docs/launchpad/developer/reference/services/buildbot/index.html.md): Reference doc for the Buildbot CI testing framework used by Launchpad linking to documentation, log files, git repositories, etc. - [Automatic translations tarball exports](https://ubuntu.com/docs/launchpad/developer/reference/services/automatic-translations-export/index.html.md): The schedule of automatic translations tarball exports from Launchpad. - [Mirror prober](https://ubuntu.com/docs/launchpad/developer/reference/services/mirror-prober/index.html.md): Reference document for the the mirror prober script and how to access the log files. - [Ubuntu mirrors index](https://ubuntu.com/docs/launchpad/developer/reference/services/ubuntu-mirrors-index/index.html.md): Reference document for the Ubuntu mirrors index service. - [Git hosting](https://ubuntu.com/docs/launchpad/developer/reference/services/git-hosting/index.html.md): Reference document for Launchpad's Git hosting service. - [Code import](https://ubuntu.com/docs/launchpad/developer/reference/services/code-import/index.html.md): Reference doc for Launchpad's Git import system. - [Launchpad public mailing lists archives](https://ubuntu.com/docs/launchpad/developer/reference/services/mailing-lists-archives/index.html.md): All about the archive of Launchpad's deprecated mailing list service. - [Launchpad and email](https://ubuntu.com/docs/launchpad/developer/reference/email/index.html.md): Launchpad email processing reference. - [Explanation](https://ubuntu.com/docs/launchpad/developer/explanation/index.html.md): Documentation covering Launchpad ideas, setup, framework, parts, best practices, and deployment processes. - [The ideas behind Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/ideas-behind-launchpad/index.html.md): Summary of the foundational ideas behind Launchpad. - [What is Launchpad?](https://ubuntu.com/docs/launchpad/developer/explanation/ideas-behind-launchpad/scope/index.html.md): Understand what Launchpad is - a complete system for gathering changes and collaboratively organizing them into packaged software. - [About Launchpad security](https://ubuntu.com/docs/launchpad/developer/explanation/ideas-behind-launchpad/security/index.html.md): Overview of Launchpad's multi-layered security approach covering architecture, system design, processes, issue reporting, etc. - [Launchpad strategy](https://ubuntu.com/docs/launchpad/developer/explanation/ideas-behind-launchpad/strategy/index.html.md): Understand Launchpad's strategy to make Ubuntu the world's best OS by improving Canonical's productivity and open source development efficiency. - [Launchpad values](https://ubuntu.com/docs/launchpad/developer/explanation/ideas-behind-launchpad/values/index.html.md): Understand the values behind Launchpad; why certain decisions were made, and why things are implemented as they are. - [Core components and setting up Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/index.html.md): Overview for setting up and understanding Launchpad covering installation, framework, navigation, pip, PPA, testing, and concepts. - [Parts of Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/index.html.md): Overview of the different parts of Launchpad. - [Launchpad code hosting](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/code/index.html.md): Overview of Launchpad's code hosting system including VCS clients, hosting infrastructure, and source code browsers. - [Engineering overview: translations](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/engineering-overview-translations/index.html.md): Engineering overview of Launchpad's Translations subsystem for Ubuntu and Launchpad-registered projects. - [Librarian file storage](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/librarian/index.html.md): How Launchpad's librarian stores and retrieves files, including URL resolution, database relationships, and Swift storage strategy. - [Launchpad mail](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/mail/index.html.md): Overview of email types in Launchpad and how the are configured. - [About Malone](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/malone/index.html.md): Understand the Malone bug tracker and what makes it substantially different from existing bug tracking tools. - [Navigation menus](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/navigation-menus/index.html.md): Learn how to use Navigation Menus to link views in Launchpad page templates. - [Launchpad registry](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/registry/index.html.md): Understand the Launchpad registry and its core domains. - [URL traversal](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/parts-of-launchpad/url-traversal/index.html.md): Explanation of URL traversal methods in Launchpad. - [Publisher](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/publisher/index.html.md): Overview of Ubuntu publishing topics. - [Ubuntu package publishing](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/publisher/ubuntu-package-publishing/index.html.md): Understand the Ubuntu package lifecycle from source upload to archive publication. - [Ubuntu archive publisher](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/publisher/ubuntu-archive-publisher/index.html.md): Understand the steps a package goes through when it enters the Ubuntu archive publisher. - [Valid-Until configuration for distribution series](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/publisher/valid-until/index.html.md): Overview of the valid_until_config on a distroseries - [Application framework](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/framework/index.html.md): Understand Launchpad's application framework built around the Zope Toolkit. - [Code concepts](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/concepts/index.html.md): Understand core code concepts in lp.code modules including registry objects, branch, target, and merge proposal. - [The Launchpad PPA](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/launchpad-ppa/index.html.md): Learn about the PPA containing dependencies needed to run Launchpad. - [Navigating the tree](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/navigating/index.html.md): Navigate the Launchpad source tree with guidance on key directories including bin, utilities, lib, and database folders. - [Launchpad pip integration](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/pip/index.html.md): Understand Launchpad's pip integration for managing Python packages including setup, usage, and dependency management. - [Launchpad installation details](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/running-details/index.html.md): Understand what happens when you use the rocketfuel-setup script to set up a local instance of Launchpad. - [Testing](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/testing/index.html.md): Learn how to test different Launchpad changes locally. - [Building live filesystems in Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/core-components-and-set-up/building-live-filesystems/index.html.md): Learn how Launchpad builds live filesystems using livecd-rootfs with LiveFS and LiveFSBuild objects. - [Database](https://ubuntu.com/docs/launchpad/developer/explanation/database/index.html.md): Overview of database topics including PostgreSQL, live patching, Storm migration, and database performance optimization. - [Database performance](https://ubuntu.com/docs/launchpad/developer/explanation/database/database-performance/index.html.md): Learn about database query optimization, common causes of performance issues, and diagnosis tools and approaches. - [Database patching](https://ubuntu.com/docs/launchpad/developer/explanation/database/database-patching/index.html.md): Understand database patching techniques for deploying schema changes on Launchpad's PostgreSQL database. - [PostgreSQL and Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/database/postgresql/index.html.md): Learn PostgreSQL was chosen for Launchpad and the degree of integration between the database and code. - [Storm migration guide](https://ubuntu.com/docs/launchpad/developer/explanation/database/storm-migration-guide/index.html.md): Learn how SQLObject concepts map to Storm ORM equivalents for migrating Launchpad code to Storm database layer. - [Working with db-devel](https://ubuntu.com/docs/launchpad/developer/explanation/database/working-with-db-devel/index.html.md): Learn how to develop against Launchpad's db-devel branch. - [Developing the Launchpad project](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/index.html.md): Understand different aspects of the development of the Launchpad project. - [About Launchpad branches](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/branches/index.html.md): Learn about Launchpad's four master branches and branching strategy for development including stable releases and database changes. - [Datetime usage guide](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/datetime-usage/index.html.md): datetime usage guidelines in Launchpad code. - [Error explanations](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/error-explanations/index.html.md): Debug error messages in Launchpad. - [Feature flags](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/feature-flags/index.html.md): Learn how feature flags are implemented to allow runtime configuration changes in Launchpad. - [Hacking](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/hacking/index.html.md): Comprehensive hacking guide covering Python programming, version targeting, coding practices, and development tips for Launchpad. - [The journey of a Launchpad change from a developer’s branch to production](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/journey-of-a-change-to-production/index.html.md): Follow the journey of a Launchpad change from a developer's branch to production deployment. - [Pre merge reviews](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/pre-merge-reviews/index.html.md): Understand the pre-merge review process, branch size limits, and contributor responsibilities. - [XXX policy](https://ubuntu.com/docs/launchpad/developer/explanation/developing-for-launchpad/xxx-policy/index.html.md): Understand Launchpad's XXX policy for marking code areas requiring follow-up. - [Best practices for development](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/index.html.md): Overview of best practices for Launchpad development including architecture, assertions, security, and performance guidelines. - [Architectural guide](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/architecture/index.html.md): Learn about Launchpad's architectural values and design principles for writing maintainable, transparent, and operational code. - [Assertions in Launchpad](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/assertions-in-launchpad/index.html.md): Understand when and how to use assertions in Launchpad code following best programming practices and guidelines. - [Bug triage process background](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/bug-triage-process-background/index.html.md): Understand the bug triage process and how Launchpad prioritizes bugs by balancing project health and user needs. - [Charm development](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/charms/index.html.md): Overview of Juju charm development principles and process for Launchpad deployments. - [Code import in depth](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/codeimport/index.html.md): Learn about Launchpad's code import system for one-way synchronization from external repositories. - [Page tests](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/page-tests/index.html.md): Learn how to use zope.testbrowser for page testing. - [About Launchpad performance](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/performance/index.html.md): Learn techniques and tools for improving Launchpad performance. - [Launchpad permissions](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/security-policy/index.html.md): Learn how Launchpad uses permissions to control access to views and object attributes and methods. - [Template reuse](https://ubuntu.com/docs/launchpad/developer/explanation/development-best-practices/template-reuse/index.html.md): Learn template reuse techniques using fragment views and macros. - [JavaScript](https://ubuntu.com/docs/launchpad/developer/explanation/javascript/index.html.md): Overview of JavaScript in Launchpad covering integration testing, unit testing, and build system topics. - [The Launchpad JavaScript build system](https://ubuntu.com/docs/launchpad/developer/explanation/javascript/javascript-buildsystem/index.html.md): Learn about the Launchpad JavaScript build system for bundling, minifying, and distributing Javascript modules. - [Integration testing in JavaScript](https://ubuntu.com/docs/launchpad/developer/explanation/javascript/javascript-integration-testing/index.html.md): Understand JavaScript integration testing in Launchpad using the yuitest library. - [Developing with YUI.Test](https://ubuntu.com/docs/launchpad/developer/explanation/javascript/javascript-unittesting/index.html.md): Introduction to using YUI.Test for JavaScript unit testing in Launchpad. - [Static assets](https://ubuntu.com/docs/launchpad/developer/explanation/static-assets/index.html.md): Overview of static assets in Launchpad including CSS, CSS sprites, images, and favicons. - [CSS](https://ubuntu.com/docs/launchpad/developer/explanation/static-assets/css/index.html.md): Overview of Launchpad CSS files including fonts, colors, and base elements. - [Using CSS sprites](https://ubuntu.com/docs/launchpad/developer/explanation/static-assets/css-sprites/index.html.md): Learn how to use CSS sprites in Launchpad templates for improved website performance. - [Favicons: Why so many files and what do they do?](https://ubuntu.com/docs/launchpad/developer/explanation/static-assets/favicon/index.html.md): Understand the favicon files generated from SVG files. - [Images](https://ubuntu.com/docs/launchpad/developer/explanation/static-assets/images/index.html.md): Learn where images should be located in Launchpad directory structure for proper organization and accessibility. ## Optional - [Top-level llms.txt](https://ubuntu.com/docs/launchpad/llms.txt): Complete documentation index.