• Logo
    Launchpad
  • Submit a Bug
  • More resources
    • Matrix
    • Launchpad Answers
    • GitHub
Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
Launchpad manual
Launchpad manual
  • User documentation
    • Get started
    • Tutorial
      • Get started with launchpadlib
    • How-to guides
      • Import an OpenPGP key
      • Import your SSH keys
      • Log into websites with OpenID
      • Create a source package recipe
      • Help the community
      • Manage your account
        • Create and personalise your Launchpad account
        • Merge two or more accounts
        • Application integration
        • Close your account
      • Projects
        • Register your project
        • Transfer ownership of a project
        • Project translations
          • Import project translations
          • Import translation templates
          • Export translations
      • Packaging
        • Install software from PPAs
        • Install software from private PPAs
        • Upload a package to a PPA
        • Build snaps in Launchpad
        • Build rocks in Launchpad
        • Build charms in Launchpad
        • Build OCI images in Launchpad
        • Use the PPA snapshot service
        • Copy packages from PPAs
        • Delete packages from PPAs
      • Launchpad web services API
        • Sign web requests
        • Webhooks
      • Work with launchpadlib
        • Using launchpadlib
        • Use the Python API
        • Authenticate launchpadlib from a text-based browser
        • Authenticated access for website integration
        • View supported fields and methods
      • Work with bugs
        • Display bug reporting guidelines
        • File a bug
        • Link a bug to a branch
        • Managing bugs through email
        • Use the Bugzilla plugin
        • Use the Launchpad email interface
        • Use the Trac plugin
        • Use the Malone XMLRPC interface
        • Import your project's bug history
        • Subscribe and unsubscribe to bugs
        • Track bugs with Mantis
      • Work with code hosted on Launchpad
        • Host your project's code on Launchpad
        • Link code to bug reports and blueprints
        • Create and maintain a personal branch in Launchpad
        • Create and manage a merge proposal
    • Reference
      • Bugs
        • Bug attachment
        • Bug expiry
        • Bug heat
        • Bug subscription
        • Email interface command reference
        • Multi-project bugs
          • Multi-project bugs
          • Tracking bugs across multiple projects
        • Roles
          • Bug supervisor
        • The Malone xmlrpc interface
        • Turning a bug into a question
      • Bug tracker API
        • Bug statuses
        • External bug statuses
        • Plugin API
        • Interoperability with external bug trackers
      • Commenting syntax
      • Consumer hosting
      • Glossary
      • Launchpad and community
        • Badges
        • Get support
        • Legal
          • Launchpad policies
          • Project licenses
          • Launchpad license
        • Project announcements
      • launchpadlib API compatibility
      • Live-file-systems
      • Loggerhead
      • Packaging
        • Personal Package Archives
          • Personal Package Archive
          • Building a source package
        • Build scores
        • Builder Specs
        • Source builds
          • Naming conventions
          • Source builds knowledge base
      • Privacy and confidentiality
      • Project groups
      • Roles in code review
      • SSH fingerprints
      • Support in your native language
      • Table of applications using the API
      • Teams
        • Launchpad teams
      • Translations
        • Software translation
        • Translation guidelines
        • Language-specific guides
        • Permissions policies
        • Import policy
        • Translators group
        • Licensing
        • Plural forms for languages
        • Reusing translations
        • PO templates
        • Translation best practices
        • Translation sharing and suggestions
      • Troubleshooting
        • Email address already in use
      • Question life cycle
      • User preferences
    • Explanation
      • What is Launchpad?
      • Your Launchpad account
      • Understanding karma
      • Collaborating using Launchpad
      • Answers
        • Launchpad Answer Tracker
        • Asking for help
      • Feature highlights
        • Answer Tracker
        • Blueprints
        • Personal Package Archives
        • Bug watches
        • Milestones
        • Bug branch linking
        • Product series
        • The bug tracker
        • Page tour
      • Launchpad API
        • Launchpad web service
        • The launchpadlib API
      • Rationale headers in Launchpad email
      • OOPS
      • Packaging
        • Packaging
        • Package upload errors
      • Privacy, confidentiality and disclosure
      • Projects
        • Registering your project
        • Planning and recording releases
        • Making your project files available for download
        • Providing support
        • Publishing project announcements
        • Closing a project
      • Staging environment
      • Support requests
      • Teams
        • Creating and running teams
        • Indirect team members
        • Team management
        • Team branches
      • Translating
        • Translating with Launchpad
        • Using Rosetta
        • Translating your project
        • Translating your software
        • Translation groups
        • Translating partial PO files
        • Preparing to translate
      • Working with code
        • Code imports
        • Git hosting
        • Launchpad CI
  • Developer documentation
    • Tutorials
      • Creating a new page in Launchpad
      • Building charms in Launchpad
    • How-to guides
      • Get started
        • Get the source code
        • Setting up and running Launchpad (quickstart)
        • Setting up and running Launchpad (advanced)
        • Launchpad database setup
        • How to develop with Buildd
        • How to use Soyuz locally
      • Operate Launchpad
        • Getting an overview of Launchpad’s build farm
        • Checking availability of Launchpad frontends
        • Manage users and teams in development environments
        • Create job to publish artifact
        • Triaging Launchpad project bugs
        • Landing updates for Loggerhead
        • Building and publishing Launchpad development LXD images
        • How to use lp-shell
      • Common development tasks
        • Fixing bugs
        • Contributing changes
        • Using an updated dependency
        • Database schema changes process
        • Applying database schema changes
        • Importing an Ubuntu package
      • Launchpad development tips
        • Updating the global configuration for tests
        • Handling security policies
        • Testing CLI scripts
        • Handling exceptions
        • Preserving query count
        • Running Launchpad with Chameleon template engine
        • Launchpad API docs generation
        • How to use codehosting locally
        • Renaming a database table
        • MockIo library
      • Debug
        • Debug tests with Visual Studio Code
        • Debug stories/pagetests
        • Troubleshoot breakpoint issues when running multiple test layers
    • Reference
      • Python style guide
      • Tests style guide
      • CSS style guide
      • Tagging bugs about Launchpad
      • Build farm
      • Signing service
      • Fetch service
      • Buildbot
      • Automatic translations tarball exports
      • Mirror prober
      • Ubuntu mirrors index
      • Git hosting
      • Code import
      • Launchpad public mailing lists archives
      • Launchpad and email
    • Explanation
      • The ideas behind Launchpad
        • What is Launchpad?
        • About Launchpad security
        • Launchpad strategy
        • Launchpad values
      • Core components and setting up Launchpad
        • Parts of Launchpad
          • Launchpad code hosting
          • Engineering overview: translations
          • Launchpad mail
          • About Malone
          • Navigation menus
          • Launchpad registry
          • URL traversal
        • Publisher
          • Ubuntu package publishing
          • Ubuntu archive publisher
          • Valid-Until configuration for distribution series
        • Application framework
        • Code concepts
        • The Launchpad PPA
        • Navigating the tree
        • Launchpad pip integration
        • Launchpad installation details
        • Testing
        • Building live filesystems in Launchpad
      • Database
        • Database performance
        • Live database patching
        • PostgreSQL and Launchpad
        • Storm migration guide
        • Working with db-devel
      • Developing the Launchpad project
        • About Launchpad branches
        • Datetime usage guide
        • Error explanations
        • Feature flags
        • Hacking
        • The journey of a Launchpad change from a developer’s branch to production
        • Pre merge reviews
        • XXX policy
      • Best practices for development
        • Architectural guide
        • Assertions in Launchpad
        • Bug triage process background
        • Charm development
        • Code import in depth
        • Page tests
        • About Launchpad performance
        • Launchpad permissions
        • Template reuse
      • JavaScript
        • The Launchpad JavaScript build system
        • Integration testing in JavaScript
        • Developing with YUI.Test
      • Static assets
        • CSS
        • Using CSS sprites
        • Favicons: Why so many files and what do they do?
        • Images
  • Get help
  • Release Notes
  • Contribute to our docs
Back to top
Contribute to this page

Link code to bug reports and blueprints¶

Important

This document has been migrated from help.launchpad.net as is, and has not yet been revised. The content might be outdated, links and images could be broken. We are aware and will fix any issues as soon as possible.

Launchpad is much like a fancy china dinner service: you can get a great deal of use and contentment from just one or two pieces. However, the really exciting - and sometimes unexpected, in a good way - things start to happen when you’ve got the whole lot.

If you’re working on a project that uses Launchpad Code and Launchpad Bugs, for example, you can link a branch of code to the bug report it fixes. Similarly, you can offer more than just status updates to fans of that fantastic new feature you’re working on - and tracking as a blueprint - by linking the blueprint to a branch of your code.

Fixing bugs in dedicated branches¶

Let’s say you’re new to a project. You spot a bug report and you’re pretty certain you can fix it. You pull down your own branch of the project’s trunk and hack away. Every now and then, you push your branch up to Launchpad.

You can tell everyone who’s interested in the bug about your work by linking your branch to the report. Now, anyone looking at the bug report can click straight through to see your branch.

Now imagine the project were using a more traditional version control system and they were tracking their bugs in a standalone tracker. As a newcomer, you could paste your patches as bug comments, while hacking away on your own machine. With Launchpad and Git, you get full version control, without affecting the official project branch itself, and anyone else can take part by downloading and creating their own branch of your work.

Create a link¶

Using the Launchpad web interface:

Step 1: Visit your merge proposal page in Launchpad.

Step 2: Click Link to a bug report.

Step 3: Select the bug report and you’re done!

Create a link¶

Just as you can register and push your branch to Launchpad directly using git, you can link to bugs by adding appropriate text to your commit message instead. For example, your commit message might look like this:

Shorten error message

The previous 3000-line message was too hard to read.

LP: #12345

The bug link will only be created after you make a merge proposal.

Find links to branches¶

In branch listings, and on the branch overview page itself, Launchpad uses an icon to indicate a link between a bug report and a branch of code. Similarly, there’s a yellow Bazaar icon in bug listings to show which reports are linked to a branch of code.

Let’s take a look at an example: take the branch listing for the Drizzle project. As you can see, some branches have grey bug icons beside their name. Click on one of those the bug icons and Launchpad will take you to the bug report page.

From the other side of this relationship - i.e. Drizzle’s bug listing pages - you’ll see the yellow Bazaar logo next to bug reports that are linked to a branch. Clicking on the Bazaar icon takes you to the relevant branch.

https://code.launchpad.net/drizzle

Each link between a bug and branch has its own status and whiteboard. The status indicates the progress of the fix and you can use the whiteboard for more detailed information.

Next steps¶

Most branches in Launchpad are associated with a project. However, you can also host personal branches using Launchpad.

Copyright © 2026 CC-BY-SA, Canonical Ltd.
Last updated on Feb 27, 2026
Manage your tracker settings
Contents
  • Link code to bug reports and blueprints
    • Fixing bugs in dedicated branches
    • Create a link
      • Create a link
    • Find links to branches
    • Next steps