a very well-understood and well-thought-out natural bug resolution protocol
</para>
</listitem>
<listitem>
<para>
email, XML, console, and HTTP APIs
</para>
</listitem>
<listitem>
<para>
available integration with automated software
configuration management systems, including Perforce and
CVS (through the Bugzilla email interface and
checkin/checkout scripts)
</para>
</listitem>
<listitem>
<para>
too many more features to list
</para>
</listitem>
</itemizedlist>
</para>
<para>
Despite its current robustness and popularity, Bugzilla faces
some near-term challenges, such as reliance on a single
database, a lack of abstraction of the user interface and
program logic, verbose email bug notifications, a powerful but
daunting query interface, little reporting configurability,
problems with extremely large queries, some unsupportable bug
resolution options, little internationalization (although non-US
character sets are accepted for comments), and dependence on
some nonstandard libraries.
</para>
<para>
Some recent headway has been made on the query front, however.
If you are using the latest version of Bugzilla, you should see
a <quote>simple search</quote> form on the default front page of
your Bugzilla install. Type in two or three search terms and
you should pull up some relevant information. This is also
available as "queryhelp.cgi".
</para>
<para>
Despite these small problems, Bugzilla is very hard to beat. It
is under <emphasis>very</emphasis> active development to address
the current issues, and continually gains new features.
</para>
</section>
<sectionid="why">
<title>Why Should We Use Bugzilla?</title>
<epigraph>
<para>
No, Who's on first...
</para>
</epigraph>
<para>
For many years, defect-tracking software has remained
principally the domain of large software development houses.
Even then, most shops never bothered with bug-tracking software,
and instead simply relied on shared lists and email to monitor
the status of defects. This procedure is error-prone and tends
to cause those bugs judged least significant by developers to be
dropped or ignored.
</para>
<para>
These days, many companies are finding that integrated
defect-tracking systems reduce downtime, increase productivity,
and raise customer satisfaction with their systems. Along with
full disclosure, an open bug-tracker allows manufacturers to
keep in touch with their clients and resellers, to communicate
about problems effectively throughout the data management chain.
Many corporations have also discovered that defect-tracking
helps reduce costs by providing IT support accountability,
telephone support knowledge bases, and a common, well-understood
system for accounting for unusual system or software issues.
</para>
<para>
But why should <emphasis>you</emphasis> use Bugzilla?
</para>
<para>
Bugzilla is very adaptable to various situations. Known uses
currently include IT support queues, Systems Administration
deployment management, chip design and development problem
tracking (both pre-and-post fabrication), and software and
hardware bug tracking for luminaries such as Redhat, Loki
software, Linux-Mandrake, and VA Systems. Combined with systems
such as CVS, Bonsai, or Perforce SCM, Bugzilla provides a
powerful, easy-to-use solution to configuration management and
replication problems
</para>
<para>
Bugzilla can dramatically increase the productivity and
accountability of individual employees by providing a documented
workflow and positive feedback for good performance. How many
times do you wake up in the morning, remembering that you were
supposed to do <emphasis>something</emphasis> today, but you
just can't quite remember? Put it in Bugzilla, and you have a
record of it from which you can extrapolate milestones, predict
product versions for integration, and by using Bugzilla's e-mail
integration features be able to follow the discussion trail that
led to critical decisions.
</para>
<para>
Ultimately, Bugzilla puts the power in your hands to improve
your value to your employer or business while providing a usable
framework for your natural attention to detail and knowledge
store to flourish.
</para>
</section>
<title>Using Bugzilla</title>
<sectionid="how">
<title>How do I use Bugzilla?</title>
<epigraph>
<para>
Hey! I'm Woody! Howdy, Howdy, Howdy!
</para>
</epigraph>
<para>
Bugzilla is a large, complex system. Describing how to use it
requires some time. If you are only interested in installing or
administering a Bugzilla installation, please consult the
Installing and Administering Bugzilla portions of this Guide.
This section is principally aimed towards developing end-user
mastery of Bugzilla, so you may fully enjoy the benefits
afforded by using this reliable open-source bug-tracking
software.
</para>
<para>
Throughout this portion of the Guide, we will refer to user
account options available at the Bugzilla test installation,
<ulinkurl="http://landfill.tequilarista.org/">
landfill.tequilarista.org</ulink>.
<note>
<para>
Some people have run into difficulties completing this
tutorial. If you run into problems, please check the
updated online documentation available at <ulink
url="http://www.trilobyte.net/barnsons/">http://www.trilobyte.net/barnsons</ulink>. If you're still stumped, please subscribe to the newsgroup and provide details of exactly what's stumping you! If enough people complain, I'll have to fix it in the next version of this Guide. You can subscribe to the newsgroup at <ulinkurl="news://news.mozilla.org/netscape.public.mozilla.webtools"> news://news.mozilla.org/netscape.public.mozilla.webtools</ulink>
</para>
</note> Although Landfill serves as a great introduction to
Bugzilla, it does not offer all the options you would have as a
user on your own installation of Bugzilla, nor can it do more
than serve as a general introduction to Bugzilla. Additionally,
Landfill often runs cutting-edge versions of Bugzilla for
testing, so some things may work slightly differently than
mentioned here.
</para>
<para>This section contains information for end-users of Bugzilla.
General issues having to do with the user interface cosmetics (not
functionality) including cosmetic issues, HTML templates, etc.
</member>
</simplelist>
</para>
</informalexample>
</example>
</para>
<para>
A "Milestone", or "Target Milestone" is a often a planned
future "Version" of a product. In many cases, though,
Milestones simply represent significant dates for a
developer. Having certain features in your Product is
frequently tied to revenue (money) the developer will
receive if the features work by the time she reaches the
Target Milestone. Target Milestones are a great tool to
organize your time. If someone will pay you $100,000 for
incorporating certain features by a certain date, those
features by that Milestone date become a very high
priority. Milestones tend to be highly malleable
creatures, though, that appear to be in reach but are out
of reach by the time the important day arrives.
</para>
<para>
The Bugzilla Project has set up Milestones for future
Bugzilla versions 2.14, 2.16, 2.18, 3.0, etc. However, a
Target Milestone can just as easily be a specific date,
code name, or weird alphanumeric combination, like "M19".
</para>
</listitem>
<listitem>
<para>
OK, now let's select the "Bugzilla" component from its scrollbox.
</para>
</listitem>
<listitem>
<para>
Skip down the page a bit -- do you see the "submit query" button?
Select it, and let's run
this query!
</para>
</listitem>
<listitem>
<para>
Congratulations! You've completed your first Query, and
have before you the Bug List of the author of this Guide,
Matthew P. Barnson (barnboy@trilobyte.net). If I'm doing
well, you'll have a cryptic "Zarro Boogs Found" message on
your screen. It is just a happy hacker's way of saying
"Zero Bugs Found". However, I am fairly certain I will
always have some bugs assigned to me that aren't done yet,
so you won't often see that message!
</para>
</listitem>
</orderedlist>
<para>
I encourage you to click the bug numbers in the left-hand
column and examine my bugs. Also notice that if you click the
underlined links near the top of this page, they do not take
you to context-sensitive help here, but instead sort the
columns of bugs on the screen! When you need to sort your bugs
by priority, severity, or the people they are assigned to,
this is a tremendous timesaver.
</para>
Don't use sigs in comments. Signing your name ("Bill") is acceptable,
particularly if you do it out of habit, but full mail/news-style
four line ASCII art creations are not.
</para>
</section>
<sectionid="attachments">
<title>Attachments</title>
<para>
A couple more interesting things about the Bug List page:
<simplelist>
<member><emphasis>Change Columns</emphasis>: by selecting
this link, you can show all kinds of information in the
Bug List</member>
<member><emphasis>Change several bugs at once</emphasis>: If
you have sufficient rights to change all the bugs shown in
the Bug List, you can mass-modify them. This is a big
time-saver.</member>
<member><emphasis>Send mail to bug owners</emphasis>: If you
have many related bugs, you can request an update from
every person who owns the bugs in the Bug List asking them
the status.</member>
<member><emphasis>Edit this query</emphasis>: If you didn't
get exactly the results you were looking for, you can
return to the Query page through this link and make small
revisions to the query you just made so you get more
accurate results.</member>
</simplelist>
Use attachments, rather than comments, for large chunks of ASCII data,
such as trace, debugging output files, or log files. That way, it doesn't
bloat the bug for everyone who wants to read it, and cause people to
receive fat, useless mails.
</para>
<para>Trim screenshots. There's no need to show the whole screen if
you are pointing out a single-pixel problem.
</para>
<note>
<para>
There are many more options to the Bugzilla Query Page and
the Bug List than I have shown you. But this should be
enough for you to learn to get around. I encourage you to
check out the <ulink
url="http://www.mozilla.org/bugs/">Bugzilla Home Page</ulink> to learn about the Anatomy and Life Cycle of a Bug before continuing.
</para>
</note>
<para>Don't attach simple test cases (e.g. one HTML file, one
CSS file and an image) as a ZIP file. Instead, upload them in
reverse order and edit the referring file so that they point to the
attached files. This way, the test case works immediately
out of the bug.
</para>
</section>
<sectionid="bugreports">
<title>Creating and Managing Bug Reports</title>
<epigraph>
<para>And all this time, I thought we were taking bugs <emphasis>out</emphasis>...</para>
</epigraph>
<section>
<title>Filing Bugs</title>
<sectionid="bug-writing">
<title>Writing a Great Bug Report</title>
<para>
Before we plunge into writing your first bug report, I
encourage you to read some bug-writing guidelines. If you
are reading this document as part of a Bugzilla CVS checkout
or un-tarred Bugzilla distribution, you should be able to
read them by clicking <ulink
url="../../bugwritinghelp.html">here</ulink>. If you are reading this online, check out the Mozilla.org bug-writing guidelines at <ulinkurl="http://www.mozilla.org/quality/bug-writing-guidelines.html">http://www.mozilla.org/quality/bug-writing-guidelines.html</ulink>. While some of the advice is Mozilla-specific, the basic principles of reporting Reproducible, Specific bugs, isolating the Product you are using, the Version of the Product, the Component which failed, the Hardware Platform, and Operating System you were using at the time of the failure go a long way toward ensuring accurate, responsible fixes for the bug that bit you.
</para>
<para>
While you are at it, why not learn how to find previously
reported bugs? Mozilla.org has published a great tutorial
I realize this was a lot to read. However, understanding
the mentality of writing great bug reports will help us on
the next part!
</para>
<orderedlist>
<listitem>
<para>
Go back to <ulink
url="http://landfill.tequilarista.org/bugzilla-tip/"> http://landfill.tequilarista.org/bugzilla-tip/</ulink> in your browser.
</para>
</listitem>
<listitem>
<para>
Select the <ulink
url="http://landfill.tequilarista.org/bugzilla-tip/enter_bug.cgi"> Enter a new bug report</ulink> link.
</para>
</listitem>
<listitem>
<para>
Select a product.
</para>
</listitem>
<listitem>
<para>
Now you should be at the "Enter Bug" form. The
"reporter" should have been automatically filled out for
you (or else Bugzilla prompted you to Log In again --
you did keep the email with your username and password,
didn't you?).
</para>
</listitem>
<listitem>
<para>
Select a Component in the scrollbox.
</para>
</listitem>
<listitem>
<para>
Bugzilla should have made reasonable guesses, based upon
your browser, for the "Platform" and "OS" drop-down
boxes. If those are wrong, change them -- if you're on
an SGI box running IRIX, we want to know!
</para>
</listitem>
<listitem>
<para>
Fill in the "Assigned To" box with the email address you
provided earlier. This way you don't end up sending
copies of your bug to lots of other people, since it's
just a test bug.
</para>
</listitem>
<listitem>
<para>
Leave the "CC" text box blank. Fill in the "URL" box
with "http://www.mozilla.org".
</para>
</listitem>
<listitem>
<para>
Enter "The Bugzilla Guide" in the Summary text box, and
place any comments you have on this tutorial, or the
Guide in general, into the Description box.
</para>
</listitem>
</orderedlist>
<para>
Voila! Select "Commit" and send in your bug report! Next
we'll look at resolving bugs.
</para>
</section>
<sectionid="bug-manage">
<title>Managing your Bug Reports</title>
<para>
OK, you should have a link to the bug you just created near
the top of your page. It should say "Bug XXXX posted", with
a link to the right saying "Back to BUG# XXXX". Select this
link.
</para>
<orderedlist>
<listitem>
<para>
Scroll down a bit on the subsequent page, until you see
the "Resolve bug, changing resolution to (dropdown box).
Normally, you would "Accept bug (change status to
ASSIGNED)", fix it, and then resolve. But in this case,
we're going to short-circuit the process because this
wasn't a real bug. Change the dropdown next to "Resolve
Bug" to "INVALID", make sure the radio button is marked
next to "Resolve Bug", then click "Commit".
</para>
</listitem>
<listitem>
<para>
Hey! It said it couldn't take the change in a big red
box! That's right, you must specify a Comment in order
to make this change. Select the "Back" button in your
browser, add a Comment, then try Resolving the bug with
INVALID status again. This time it should work.
</para>
</listitem>
</orderedlist>
<para>
You have now learned the basics of Bugzilla navigation,
entering a bug, and bug maintenance. I encourage you to
explore these features, and see what you can do with them!
We'll spend no more time on individual Bugs or Queries from
this point on, so you are on your own there.
</para>
<para>
But I'll give a few last hints!
</para>
<para>
There is a <ulink
url="http://landfill.tequilarista.org/bugzilla-tip/help.html">CLUE</ulink> on the Query page that will teach you more how to use the form.
</para>
<para>
If you click the hyperlink on the <ulink
url="http://landfill.tequilarista.org/bugzilla-tip/describecomponents.cgi">Component</ulink> box of the Query page, you will be presented a form that will describe what all the components are.
</para>
<para>
Possibly the most powerful feature of the Query page is the
<ulink
url="http://landfill.tequilarista.org/bugzilla-tip/booleanchart.html">Boolean Chart</ulink> section. It's a bit confusing to use the first time, but can provide unparalleled flexibility in your queries, allowing you to build extremely powerful requests.
</para>
<para>
Finally, you can build some nifty <ulink
url="http://landfill.tequilarista.org/bugzilla-tip/reports.cgi">Reports</ulink> using the "Bug Reports" link near the bottom of the query page, and also available via the "Reports" link at the footer of each page.
</para>
</section>
</section>
</section>
<sectionid="init4me">
<title>Where can I find my user preferences?</title>
<epigraph>
<para>
Indiana, it feels like we walking on fortune cookies!
<para>Try to make sure that everything said in the summary is also
said in the first comment. Summaries are often updated and this will
ensure your original information is easily accessible.
</para>
<para>
These ain't fortune cookies, kid...
You do not need to put "any" or similar strings in the URL field.
If there is no specific URL associated with the bug, leave this
field blank.
</para>
<para>If you feel a bug you filed was incorrectly marked as a
DUPLICATE of another, please question it in your bug, not
the bug it was duped to. Feel free to CC the person who duped it
if they are not already CCed.
</para>
</epigraph>
<para>
Customized User Preferences offer tremendous versatility to your
individual Bugzilla experience. Let's plunge into what you can
do! The first step is to click the "Edit prefs" link at the
footer of each page once you have logged in to <ulink
On this page, you can change your basic Account Settings,
including your password and full name. For security reasons,
in order to change anything on this page you must type your
<emphasis>current</emphasis> password into the <quote>Old
Password</quote> field. If you wish to change your
password, type the new password you want into the <quote>New
Password</quote> field and again into the <quote>Re-enter
new password</quote> field to ensure you typed your new
password correctly. Select the <quote>Submit</quote> button
and you are done.
</para>
<para>On this tab, you can change your basic account information,
including your password, email address and real name. For security
reasons, in order to change anything on this page you must type your
<emphasis>current</emphasis>
password into the
<quote>Password</quote>
field at the top of the page.
If you attempt to change your email address, a confirmation
email is sent to both the old and new addresses, with a link to use to
confirm the change. This helps to prevent account hijacking.</para>
</section>
<sectionid="emailsettings">
<sectionid="emailsettings">
<title>Email Settings</title>
<sectionid="notification"xreflabel="">
<title>Email Notification</title>
<para>
Here you can reduce or increase the amount of email sent you
from Bugzilla. Although this is referred to as
<quote>Advanced Email Filtering Options</quote>, they are,
in fact, the standard email filter set. All of them are
self-explanatory, but you can use the filters in interesting
ways. For instance, some people (notably Quality Assurance
personnel) often only care to receive updates regarding a
bug when the bug changes state, so they can track bugs on
their flow charts and know when it is time to pull the bug
onto a quality assurance platform for inspection. Other
people set up email gateways to
<xreflinkend="bonsai"/> or <xreflinkend="tinderbox"/>, and
restrict which types of Bugzilla information are fed to
these systems..
</para>
</section>
<sectionid="newemailtech">
<title>New Email Technology</title>
<note>
<para>
This option may not be available in all Bugzilla
installations, depending upon the preferences of the
systems administrator responsible for the setup of your
Bugzilla. However, if you really want this functionality,
ask her to "enable newemailtech in Params" and "make it
the default for all new users", referring her to the
Administration section of this Guide.
</para>
</note>
<para>
Disregard the warnings about "experimental and bleeding
edge"; the code to handle email in a cleaner manner than
that historically used for Bugzilla is quite robust and
well-tested now.
</para>
<para>
I recommend you enable the option, "Click here to sign up
(and risk any bugs)". Your email-box will thank you for it.
The fundamental shift in "newemailtech" is away from
standard UNIX "diff" output, which is quite ugly, to a
prettier, better laid-out email.
</para>
</section>
<sectionid="watchsettings">
<title>"Watching" Users</title>
<note>
<para>
This option may not be available in all Bugzilla
installations, depending upon the preferences of the
systems administrator responsible for the setup of your
Bugzilla. However, if you really want this functionality,
ask her to "enable watchers in Params".
</para>
</note>
<para>
By entering user email names into the "Users to watch" text
entry box, delineated by commas, you can watch bugs of other
users. This powerful functionality enables seamless
transitions as developers change projects, managers wish to
get in touch with the issues faced by their direct reports,
or users go on vacation. If any of these three situations
apply to you, you will undoubtedly find this feature quite
convenient.
</para>
</section>
<para>On this tab you can reduce or increase the amount of email sent
you from Bugzilla, opting in our out depending on your relationship to
the bug and the change that was made to it. (Note that you can also do
client-side filtering using the X-Bugzilla-Reason header which Bugzilla
adds to all bugmail.)</para>
<para>By entering user email names, delineated by commas, into the
"Users to watch" text entry box you can receive a copy of all the
bugmail of other users (security settings permitting.) This powerful
functionality enables seamless transitions as developers change
projects or users go on holiday.</para>
<note>
<para>The ability to watch other users may not be available in all
Bugzilla installations. If you can't see it, ask your
administrator.</para>
</note>
</section>
<sectionid="footersettings">
<title>Page Footer</title>
<note>
<para>
By default, this page is quite barren. However, go explore
the Query Page some more; you will find that you can store
numerous queries on the server, so if you regularly run a
particular query it is just a drop-down menu away. On this
page of Preferences, if you have many stored queries you can
elect to have them always one-click away!
</para>
</note>
<para>
If you have many stored queries on the server, here you will
find individual drop-downs for each stored query. Each
drop-down gives you the option of that query appearing on the
footer of every page in Bugzilla! This gives you powerful
one-click access to any complex searches you may set up, and
is an excellent way to impress your boss...
</para>
<tip>
<para>By default, the "My Bugs" link appears at the bottom of
each page. However, this query gives you both the bugs you
have reported, as well as those you are assigned. One of
the most common uses for this page is to remove the "My
Bugs" link, replacing it with two other queries, commonly
called "My Bug Reports" and "My Bugs" (but only referencing
bugs assigned to you). This allows you to distinguish those
bugs you have reported from those you are assigned. I
commonly set up complex Boolean queries in the Query page
and link them to my footer in this page. When they are
significantly complex, a one-click reference can save hours
of work.</para>
</tip>
<para>On the Search page, you can store queries in Bugzilla, so if you
regularly run a particular query it is just a drop-down menu away.
Once you have a stored query, you can come
here to request that it also be displayed in your page footer.</para>
</section>
<sectionid="permissionsettings">
<title>Permissions</title>
<para>
This is a purely informative page which outlines your current
permissions on this installation of Bugzilla. If you have
permissions to grant certain permissions to other users, the
"other users" link appears on this page as well as the footer.
For more information regarding user administration, please
consult the Administration section of this Guide.
</para>
<para>This is a purely informative page which outlines your current
permissions on this installation of Bugzilla - what product groups you
are in, and whether you can edit bugs or perform various administration
functions.</para>
</section>
</section>
<sectionid="usingbz-conc">
<title>Using Bugzilla-Conclusion</title>
<para>
Thank you for reading through this portion of the Bugzilla
Guide. I anticipate it may not yet meet the needs of all
readers. If you have additional comments or corrections to
make, please submit your contributions to the <ulink
url="mailto://mozilla-webtools@mozilla.org">mozilla-webtools</ulink> mailing list/newsgroup. The mailing list is mirrored to the netscape.public.mozilla.webtools newsgroup, and the newsgroup is mirrored to mozilla-webtools@mozilla.org