Launchpad manual for developers

The Launchpad manual for developers is the most comprehensive resource for anyone looking to contribute to Launchpad.

We are always working to improve the user experience and other features of this platform and we rely on contributors like you to make this happen. There are different ways to contribute to launchpad as a developer including proposing new features, triaging and fixing bugs, and testing features.

This manual shows you how to handle different tasks from downloading the source code and creating new pages to fixing bugs and contributing changes to Launchpad.

In this documentation

Setup and first steps

Get started with Launchpad core development by downloading the source code, running Launchpad locally, or even deploying Soyuz on your machine for local builds.

Day-to-day development

Guidelines and instructions for routine development tasks, from fixing bugs to submitting database schema changes. Explore common workflows and processes required to implement and ship changes in Launchpad.

Operating Launchpad

Manage, maintain, and monitor Launchpad services and environments in real time, including operating the build farm, checking frontend availability, user management, and utilizing diagnostic CLI tools.

Testing, debugging and troubleshooting

Verify the quality of your code and resolve issues effectively using Launchpad’s testing and debugging suites. Learn how to execute tests, troubleshoot breakpoints, and integrate debugging tools into VS Code.

Core concepts and architecture

Understand the foundational design, vision, and internal architecture that power Launchpad. Explore the philosophical goals, values, and essential components that define the framework and its application flow.

Database

Explore Launchpad’s relational database layer, its performance optimization strategies, and schema management practices. Understand workflows for executing database migrations, renaming tables, and maintaining query efficiency.

Development best practices

Coding style guides, architectural rules, and security policies used to maintain the quality of the codebase, from use of assertions to preferred Python conventions.

Frontend development

Build and test Launchpad’s client-side user interface using standard assets and frameworks. Understand the JavaScript build system, styling standards, and testing interfaces.

Services and components

Background services and standalone modules that support Launchpad including the build farm, git/code hosting, mail services, and packaging pipelines.

How this documentation is organized

This documentation uses the Diátaxis documentation structure.

  • The Tutorial takes you step-by-step through common development tasks in Launchpad.

  • How-to guides assume you have basic familiarity with Launchpad. They cover setting up a development environment, contributing changes, and operating a Launchpad instance.

  • Reference provides specifications of Launchpad services and coding style guides.

  • Explanation includes background on key concepts, development best practices, and the deployment process of Launchpad.