sync up "affects" target documentation with lib/lp/bugs/mail/commands.py
|Deletions are marked like this.||Additions are marked like this.|
|Line 269:||Line 269:|
| affects ubuntu/$packagename
| affects $product
Launchpad's bug tracker sends you email about the bugs you're interested in. If you see something that requires your attention - for example, you want to comment on a bug - rather than leaving your email client to fire up a web browser, all you need to do is reply to the email.
It's not just limited to replying to bug notifications, though. The bug tracker's email interface allows you to do just about everything you can in the web interface. Within time, you may find that email is the main way you interact with the bug tracker.
Before you start
Launchpad verifies incoming email by looking for a GNU Privacy Guard (GPG) signature by the sender, or a DKIM signature by a trusted sender domain, such as GMail. Read our guide on adding your GPG key to your Launchpad account.
Messages that just add comments to a bug or merge proposal are not required to be signed. Messages that contain commands to change the state of an object do need to be signed.
Anatomy of an email to the bug tracker
Let's look at the elements of a bug report email:
From address: the address from which you send the email must be registered in your Launchpad account.
To address: firstname.lastname@example.org for new bugs; email@example.com to manipulate an existing bug report; firstname.lastname@example.org for bulk edits.
Subject: Launchpad uses this as the bug report or comment summary.
Email body: the text of your email forms the bug report or comment detail. This is also where you can supply commands to manipulate the bug.
That last item, the email body, needs a little more explanation. When you want to use one of the email interface's commands, you need to start the line with a space. Otherwise, Launchpad will treat your command as a comment only and not as a command.
Note: all commands are also posted as a comment to the bug. This is something we plan to fix.
Getting started with the email interface
Let's take a look at an imaginary scenario, in which someone reports a bug requesting a screen cast to help demonstrate the bug tracker's email interface.
Reporting a bug
Reporting a new bug by email is simple. Send an email to email@example.com and describe the problem you're having. Tell Launchpad which project, distribution or distribution package the bug affects by using the affects command.
Affects must be the first command you give in the email when reporting a new bug.
Here's an example bug report email:
From: firstname.lastname@example.org To: email@example.com Subject: Bug tracker email interface needs a screen cast Body: I looked on the Launchpad help wiki for information on using the bug tracker's email interface. I found the user guide helpful but wanted a screen cast to demonstrate it at my local LUG. affects launchpad-documentation
If the bug affects a distribution package, state the distribution name followed by a slash and the package name. For example: `affects ubuntu/firefox".
Similarly, if the bug affects more than one project or package, use a new line for each project/package:
affects exaile affects ubuntu/exaile
Commenting on and changing the status of a bug
If you've received a notification about a bug and you want to leave a comment, simply reply to the email. Otherwise, to comment on a bug, send your email to firstname.lastname@example.org. For example: email@example.com.
Here's an example bug comment email, with a command to change its status to Confirmed:
From: firstname.lastname@example.org To: email@example.com Subject: Neat idea Body: What a neat idea! Matt R: can you schedule some time to create a screen cast? We should put the screen cast directly in the bug tracker's interface. affects malone status confirmed
Joey has also marked the bug as affecting the Launchpad bug tracker itself, using its project name malone.
Assigning and targeting the bug
Matthew sees that his boss, Joey, thinks this a good idea, so he assigns it to himself and targets it to a future milestone:
From: firstname.lastname@example.org To: email@example.com Subject: I'll tackle this in September Body: > What a neat idea! Matt R: can you schedule some time to create a screen cast? Yeah, this is a great idea. I'll have time for this in September. affects launchpad-documentation assignee matthew.revell milestone 1.2.9
Note that Matthew used the affects command. Earlier, Joey marked the bug as also affecting another project. Here, affects lets Matthew ensure the assignee and milestone are applied to the bug as it affects the Launchpad Documentation project. To use affects in this way you must place it before the other commands.
Matthew could just as easily have left out the affects command and Launchpad would have selected the most likely project that bug is reported against. See the affects command reference for details.
Attaching files to bugs
Once Matthew's started work on the bug, he can attach an image from the screen cast to the bug report to show how he's getting on.
In most cases, file attachments are useful for screen shots that demonstrate the bug or for log files.
You can attach a file to a bug report by attaching the file to the email you send to Launchpad.
The attachment must have its content-disposition set to "attachment" and not "inline". Images pasted into emails in Mozilla Thunderbird have a content-disposition of "inline", so attach them rather than paste them into the email body.
To help prevent unwanted files being attached to bug reports, Launchpad filters files that are unlikely to be intended for the bug report, including:
- MacOS resource forks.
Editing a bug that affects multiple contexts
Every package or project affected by a bug has its own fix status, assignee, milestone and so on. Use the affects command to edit each of these as it affects a particular context.
From: firstname.lastname@example.org To: email@example.com Subject: <none> affects ubuntu/flash-player status fixreleased
When a bug affects only one package or product, the affects command is unnecessary.
What to expect when you submit an email
Launchpad processes incoming bug mail every three minutes, so a slight delay between sending a mail and receiving a response is normal.
If Launchpad processed your email successfully, it will reply by email to confirm the changes. This email is identical to the bug notification that would get if you had made the same changes using the web interface.
For example, if you sent an email like:
From: firstname.lastname@example.org To: email@example.com Subject: Re: [Bug 28919] error signing code of conduct: "str: No public key" status incomplete
You'll receive a response like:
From: firstname.lastname@example.org To: email@example.com Subject: [Bug 28919] error signing code of conduct: "str: No public key" Public bug report changed: https://launchpad.net/malone/bugs/28919 Changed in: Launchpad (upstream) Status: Unconfirmed => Incomplete
On partial failure
An email message to firstname.lastname@example.org can (1) create a bug and (2) attempt a command on the bug. It is possible for the create to succeed but the command to fail. The resulting error message will give you the impression that the whole email failed. You can then create a duplicate bug.
If you get a failure email message and you wish to avoid duplicate bugs, you would be prudent to check the web interface for new bugs before resending your bug with your attempted corrections to your commands.
If an error occurs while processing your email, Launchpad will send you a failure message.
For example, if you forget to GPG-sign an email reporting a new bug, you'll receive an error message similar to:
From: email@example.com To: firstname.lastname@example.org Subject: Submit Request Failure An error occurred while processing a mail you sent to Malone's email interface. Error message: In order to submit bugs via email you have to sign the message with a GPG key that is registered in Launchpad. -- For more information about using Malone's email interface, please see https://wiki.launchpad.canonical.com/Bugs/EmailInterface.
If you've waited several minutes and still not received either a change notification or an error message, please let us know.
Filtering bug mail
If you deal with a large number of bug reports by email, you may find that you want to filter them to stop them cluttering your in-box. Launchpad appends custom headers to bug emails to help you filter them.
You can find out more about the headers that Launchpad uses in our article on bug subscriptions.
You must write one email command per line. Remember that you need to start the line with a space, otherwise it will be treated as part of your comment.
status confirmed assignee foobar
You can mix commands with non-command text, such as the description when filing a bug, or comment text when replying to a bug notification.
This is an example bit of bug description. affects ubuntu/firefox And this is some more description. assignee bradb
When filing a bug, affects $target marks the bug as affecting $target. This must be the first command when reporting a new bug.
You can also, optionally, use affects when you're editing a bug. For example, if you want to set the status of a bug as it affects Zope 3, you'd use affects zope3.
If you leave out affects, Launchpad will make your changes to the bug the following context:
- the project, distribution or package for which you are a bug supervisor
- the distribution of which you're a member
If Launchpad can't determine the context in which to make your changes, it will email you with an error message.
The affects target can take the following forms:
Change the one-line summary of the bug. Quotes are required.
summary "A better summary"
Assign a bug to someone.
Unassign the bug.
Change the status of a bug.
Change the importance of a bug.
Sets or clears the milestone of the bug. The milestone must already exist in Launchpad. More about milestones.
You can clear the milestone by sending a hyphen:
Changes the information type of the bug that affects visibility of the bug. Only the people that the project shares confidential information with can see "Private", "Private Security", and "Proprietary" bugs.
Subscribe yourself or someone else to the bug. If you don't specify a name or email, Launchpad will subscribe you, the send of the email, to the bug.
Subscribe yourself to the bug:
Subscribe Foo Bar to the bug:
Subscribe Bjorn to the bug.
The opposite of the subscribe command.
Mark the bug as a duplicate of another bug.
To unmark the bug as a duplicate, specify 'no' as the bug id.
The bug command is useful if you want to use one email to make changes to several bugs.
Send such emails to email@example.com.
From: firstname.lastname@example.org To: email@example.com Subject: <whatever> bug 42 status confirmed bug 49 status confirmed
Assign a tag to a bug. You can specify multiple tags with a single command.
tag foo bar
Remove a tag by prefixing the tag name with -.
done tells Launchpad to process no further commands.
tag foo status confirmed done affects everyone using version 1.0.1
The line below done looks like an affects command but Launchpad will ignore it.