Launchpad Help > Bugs > Multi-project bugs
Overview
As we saw in the introduction to the bugs section of this user guide, Launchpad's bug tracker can track how the same bug affects different communities, such as free software projects or Linux distributions.
Each community shares the same bug number, report and comment history. However, they can keep track of how the bug affects them and how they plan to deal with it by setting their own status, importance and assignee for each bug. Launchpad can even pull information from - and in some cases push information to - external bug trackers, such as Bugzilla and Trac.
In effect, all the groups affected by a bug can come together to form an ad-hoc community around the bug report. This is ideal for free software projects who rely on code maintained by other communities.
Working with multi-project bugs
Bugs that affect more than one community are a natural part of life in the free software world. That's why Launchpad makes handling multi-project bugs natural and effortless.
At the top of each bug report in Launchpad is a table that shows you which communities are tracking that bug.
To tell Launchpad that the bug also affects your project, use the link directly below the table. It's a simple as that.
As soon as Launchpad knows that you also want to track that bug, the report shows up just like any other bug reported against your project. The difference is that the bug has become much shallower than if your bug tracker treated your project like an island.
Now it's not just people interested in your project who are looking for a fix: it's people from every project that's tracking the bug in Launchpad!
Bugs in external trackers
Of course, not every project that you work with uses Launchpad's bug tracker. Launchpad has two ways to help you keep tabs on how the bug affects communities who external bug trackers:
Two way communication using a plug-in: Launchpad imports the bug's status and shares the full comment history with external trackers who have installed the Launchpad plug-in.
Status imports: Launchpad imports the bug's status from the external tracker and displays it at the top of the Launchpad bug report.
Let's take a look at an example.
Here, the bug is tracked directly in Launchpad by the maintainers of the Ubuntu Mozilla Thunderbird package. However, Launchpad is also importing status information about the bug from two external bug trackers: Debian BTS, for the Debian Thunderbird package, and Bugzilla for the upstream Thunderbird project.
Watching externally tracked bugs is just as easy as marking a bug as affecting multiple projects within Launchpad. Follow the link below the table and choose the relevant project.
Note: even though the project uses an external bug tracker, the project must be registered in Launchpad.
Two-way communication using a plug-in
When two communities both use Launchpad to track their bug reportss and they have a bug in common, it's supremely easy for them to work together. They can see each other's progress, see which branches the other group has linked to and share a common comment history.
Rather than restrict this functionality only to groups who use Launchpad, the Launchpad team have produced plug-ins that enable some external bug trackers - right now, Bugzilla and Trac - to communicate directly with Launchpad. In a sense, this is the start of freeing bug reports from bug trackers: as bugs in free software are rarely felt by just one project, sharing bug reports across bug trackers will speed up the search for a solution.
The plug-ins add an API to the host bug tracker that not only makes communication between Launchpad and the remote bug tracker much more efficient but it also provides:
* Bi-directional comment synchronisation: comments on remote bugs that Launchpad is watching are automatically imported into Launchpad. Replies to those comments in Launchpad are automatically pushed back to the remote bug tracker.
Bug imports: Launchpad can import new bugs from the remote bug tracker as soon as they are created, making them available to Launchpad users without anyone having to create a bug watch.
Bug exports: Launchpad can automatically push bugs up to the remote tracker. This allows upstream projects to manage their bugs entirely within their own bug tracker without having to check Launchpad for bugs filed there.
Communication without a plug-in
In the absence of a Launchpad plug-in at the remote bug tracker, Launchpad can often nonetheless import a bug report's status, using either:
- machine readable data, such as CVS or XML, where available
- or standard web output, where machine readable information is not available.
External trackers that Launchpad supports
|| Bug tracker || Import status? || Two-way communication with a plug-in?
Bugzilla |
Yes |
|
Debian BTS |
Yes |
No |
Trac |
Yes |
|
Sourceforge |
Yes |
No |
Mantis |
Yes |
No |
RT |
Yes |
No |
Savane |
Coming soon |
No |
Gforge |
Coming soon |
No |
To ensure ease of use and consistency, Launchpad translates the statuses used by external trackers into the equivalent Launchpad status.
Next step
There's a table of the translations that Launchpad makes, along with an explanation of Launchpad's approach to bug statuses, next.