A Short Primer on Bug Reporting and Triaging for Fun & Profit

There are as many reasons to work with bugs as there are people doing it. I think mostly it falls into two categories: 1. The people that just want to make Ubuntu as clean and user-friendly as it can be, and 2. The people that want to improve launchpad karma. The Number One reason we should be working on Ubuntu bugs is Bug No. 1. I guess, for me, it's a little of each. I started by just reporting bugs and realized I could get something in return other than satisfaction. Now I have become interested in the mental challenge of reporting complete bugs, finding and reporting duplicates, and trying to help Users learn to report good bugs. Please understand that I'm pretty much a Linux Gnuub. I haven't really learned the packages or which log files to attach well enough to be considered a good Bug Guy; I just try to do better. And that's the point: you don't need to be a seasoned Linux/Ubuntu Power User or Developer to help. Working with bugs is a win/win/win proposition. Reporting or triaging bugs teaches more about the OS, working in the OS helps one learn about reporting proper bugs/triaging, and most important of all, the Ubuntu Community profits from your work. The Launchpad Karma is just a fun side benefit: a way to keep track of how much one has accomplished irrespective of motivation.

This is a little off the subject, but Dustin Kirkland has written an Ubuntu Document Search that I've found very useful. It can be added to your Firefox Search Bar.

There is are many documents on the subject. The place to start is: How To Triage Bugs . From there, all the following links will be useful also:
Report A Bug
Reporting Bugs
Helping With Bugs
Debugging Procedures
Join The Bugsquad

You can watch for bugs to show up on #ubuntu-bugs-announce as they are reported. This is a great place to find bugs to triage since there are many people trying to triage bugs and you may not get the chance otherwise. When triaging, questions can be asked on channels #Ubuntu-bugs and #ubuntu-devel when you have a question about which package a particular belongs to. Finding duplicate bugs is a very useful thing to do. Start by looking here. On the right side of the page is a column listing all packages and the number of bugs in each. Just choose one and read; you'll find dups to deal with.

Kubunbtu bug triaging deserves it's own mention. The way I understand it, until recently Kubuntu bugs (KDE Specific) were pushed upstream to KDE Bugs and reported in bugzilla and not worked on internally. Now, this is still done, but it's not the first thing done. The following is the sequence of events that need to be followed with KDE Bugs:
1. Report the bug in Launchpad
2. Assign it to a package or someone else will have to. If you're not sure which package applies, try asking on IRC channel #kubuntu-bugs or #kubuntu-devel
3. Check upstream bugtracker for duplicate bug entries. KDE Bugs
4. If none, then create new bug report on upstream bug tracker.
5. Link upstream bug to the Launchpad bug.
From then on, Launchpad will track the upstream bug. Kubuntu really needs help getting things running to track and work on KDE bugs within the Ubuntu community. This is really a good time to get with Kubuntu as there is so much to do and you will not be lost in the crowd. It's a real chance to make a name for yourself with in the Community.


I've been told that using the Greasemonkey extension within FireFox can help speed up the process of triaging bugs. That is why I have included these links:
Greasemonkey FF Extension

Launchpad Greasemonkey Scripts

The launchpad-gm-scripts project collects useful Firefox GreaseMonkey
scripts that assist Launchpad bug triagers in working more effectively
and efficiently.

GreaseMonkey is a Firefox extension for adding macro-like capabilities
to do javascript-ish things on top of certain web pages. To install
GreaseMonkey, follow these steps:

* Go to Firefox->Tools->AddOns
* Click Get Extensions (or Get Ubuntu AddOns if on Ubuntu)
* Select GreaseMonkey, and install
* Restart Firefox

Then to install these scripts, run:

* firefox lp_karma_suffix.user.js
* firefox lp_stockreplies.user.js
* firefox lp_patches.user.js
* firefox lp_buttontags.user.js
* firefox lp_highlight_me.user.js
* firefox lp_workflowreports.user.js
* firefox lp_hide_tags.user.js
* firefox lp_question_comment.user.js
* firefox lp_reporter_comments.user.js

Or click on the individual scripts from your file browser.

Here's a way to install from the command line:
* Copy *.js to ~/.mozilla/firefox//gm_scripts/
* Modify your ~/.mozilla/firefox//gm_scripts/config.xml
like in the included example.

For the latest updates to the scripts, go to the following link and
click 'download' for each of them:

http://bazaar.launchpad.net/~gm-dev-launchpad/launchpad-gm-scripts /master/files

lp_karma_suffix.user.js: Launchpad Karma Suffix
When triaging bugs, it helps to have some way to gauge the relative
experience of the person reporting or commenting on a given bug. This
tool helps by appending the person's karma score after their name.

As well, team membership can denote experience/involved-ness, so this
tool also appends icons indicating for some teams that the person is
in. This is helpful for flagging comments/flags from the bug triaging
team, core developers, and so on.

As there are a LOT of teams in launchpad, most of which you may not care
about, only a select number of teams are included by default. You can
customize the list by editing the Javascript as follows:

* In Firefox go to Tools->Greasemonkey->Manage User Scripts
* Select LP_Karma_Suffix
* Click the Edit button at the bottom, and type in the name of your
preferred text editor. E.g. "/usr/bin/gedit" or
* Scroll down to the 'team_handler' function and find where the teams
variable is defined, then add a line with your new team. For
instance, to add the Inkscape Bug Team to your list, modify teams to
look like this:

var teams = {

* [Note that the team must have a 14x14 icon defined with it in order
to see anything. This can be set by a team admin via the 'Change
branding' link on the Launchpad team overview page.]
* Save and exit the text editor, then go back to the Manage User
Scripts dialog and click OK.
* Reload some pages to see the icon. :-)

lp_stockreplies.user.js: Launchpad Stock Replies
When processing through a lot of bugs, often you wish to make
essentially the same comment over and over again, such as, "Thanks for
reporting this blah blah... Please attach foo.log, so we can..."

This script helps avoid a lot of retyping or manual cut-n-pastes by
providing a way to store your own canned comments in Firefox itself. It
then adds links for each of your canned comments right above the
"Comment on this change" field, making it convenient to select a stock
reply to send.

To add new stock replies, click the [+] link, which will bring up
options to add or save stock replies.

Add New Stock Reply:
name A tag id for the reply. (Avoid punctuation)
comment Sets the comment field to this value.
status Sets the status dropdown to this text key (if present).
assign Assigns the bug to this launchpad username (if present).
Special names:
-me To assign to yourself
-nobody To unassign
importance Sets the importance dropdown to this text key (if present).
package Sets the package field to this text (if present).

Save Stock Replies:
After making additions or changes to any of the replies, click this to
save the changes.

BUG: Permanently Saving Greasemonkey Settings:
It seems that Firefox or Greasemonkey does not atomically save
settings to disk. As a result, it is best to close Firefox completely
after making large changes to the stock replies so that they are saved
to disk for sure. In the event of a Firefox crash, many people have
had issues with stock replies disappearing.

lp_patches.user.js: Launchpad Patches
It is possible to flag an attachment as a patch in Launchpad. However, from
the bug's main page one has to click on the "edit" link next to an attachment
to determine if it is flagged as a patch. This script removes that extra step
by identifying which attachments have been marked as patches.

Attachments are normally identified by a green downward pointing arrow, now
ones flagged as patches will be identified as a star. Patches will be
identified in both the attachments portlet and in comments.

lp_buttontags.user.js: Launchpad Button Tags

lp_highlight_me.user.js: Launchpad Highlight Me
This adds a visual highlight to things belonging/assigned to the logged-in
user. Currently this only highlights rows in +milestone pages, so you can
quickly see specs and bugs assigned to yourself. No configuration needed.

lp_workflowreports.user.js: Workflow Reports

lp_hide_tags.user.js: Hide and sort tags in tags portlet
This script reduces the number of tags show in the tags portlet on the
bugs landing pages for projects. It also orders the shown tags by count
instead of alphabetically.

lp_question_comment.user.js: Prefill comment field
This script will prefill the comment field with Ubuntu's stock reply when
converting a bug to a question. One could change the comment variable
for other project's.

lp_reporter_comments.user.js: Identiy comments from bug reporter
Sometimes bug reports can have multiple people commenting on the bug
and lots of comments. This script will modify the comment header color,
to a user defined color, making the original reporter's comments easier
to identify in a long bug report.

lp_activity_comments.user.js: Show ActivityLog as comments on the bug-page
This script shows each entry of the activity log of a bugreport as a comment
on the main bug page. This is an easy way to show changes to a bug within
the bugreport.

Also See
* Firefox Launchpad Plugin