Bugzilla Guide

From NeoWiki

Revision as of 05:20, 19 October 2006 by Sardisson (Talk | contribs)
Jump to: navigation, search

A guide to filing and triaging bugs in the NeoOffice Bugzilla

Contents

I've found a bug or have a feature request for NeoOffice. What should I do?

Before reporting a bug in NeoOffice...

  1. Make sure you are using the latest patch; visit http://www.planamesa.com/neojava/patch.php to download the latest patch. Our talented volunteer developers are constantly fixing bugs, and your bug might have been fixed already.
  2. See if you can reproduce the bug (repeatedly cause the bug to occur); bugs that are not reproducible are very difficult to fix.
    1. See if the bug is reproducible after rebooting your Mac.
    2. See if the bug is reproducible "with a fresh profile"; sometimes your user settings can become corrupt and cause a bug. Move your user's ~/Library/Preferences/NeoOffice-2.x (~/Library/Preferences/NeoOffice-1.x for NeoOffice 1.2.x) folder to another location and restart NeoOffice.
    3. If you have access to the X11 version of OpenOffice.org, see if the bug reproduces in the corresponding X11 version (e.g., NeoOffice 2.0 Alpha is equivalent to OpenOffice.org/X11 2.0.2 and NeoOffice 2.0 Aqua Beta is equivalent to OpenOffice.org/X11 2.0.3); if so, file a bug report in the OpenOffice.org IssueZilla instead, since it is an OpenOffice.org bug.
  3. If the problem persists, file a bug, following the guidelines below.

Feature and Enhancement Requests

We are not currently taking requests for new features or enhancements to existing features. Due to the rapid changes in the nature of the Macintosh platform and the available developer time and resources, the scope of the NeoOffice project is limited at this time to keeping a native version of OpenOffice.org running on Mac OS X. See this thread on trinity for more details.

Fixing bugs in OpenOffice.org features is outside the current scope of the project. Similarly, most enhancements need to be implemented in shared cross-platform OpenOffice.org code and should be filed in the OpenOffice.org IssueZilla instead.

Filing a bug report in the NeoOffice.org Bugzilla

  1. Before filing a bug, search for a duplicate to make sure the bug hasn't already been reported.
    1. Select Query Bugs from the main page of Bugzilla.
    2. Select NeoOffice from the Project menu and enter search terms.
      • Do not reopen similar-sounding bugs reported against older versions of NeoOffice (e.g., bugs filed against NeoOffice/J 1.1 or NeoOffice 1.2.2—any bug with a number of 1000 or lower and/or closed before April 2006, since the Bugzilla interface will display the version field incorrectly on old bugs); in almost all cases, the bug is not the same, and adding additional information will only serve to confuse the issue. Instead, file a new bug and mention in the new report that your bug sounds similar to bug nnnn that was reported against NeoOffice version nn.
      • If you find a current (UNCONFIRMED, NEW, ASSIGNED, or REOPENED) bug that sounds like the bug you want to report, you can add yourself to the CC list to be notified of new developments and test patches. If the bug is UNCONFIRMED (and sometimes on REOPENED bugs) and you have more information that would help confirm the bug (e.g., alternate steps to reproduce), feel free to add a comment with that information as well.
  2. When filing a bug, include only one issue (bug) per report; this makes it easier to track and fix bugs.
  3. Make sure you select the appropriate version of Mac OS X and include the patch version of your NeoOffice application
    This helps us determine if the bug only exists on a particular version of Mac OS X—as is often the case; early "point" releases of 10.4 seemed particularly buggy—and at which patch level the bug began to appear. Do not select "All" as the OS version unless you can reproduce the bug on Mac OS X 10.3.9 and Mac OS X 10.4.x PPC or on Mac OS X 10.4.x PPC and Mac OS X 10.4.x Intel.
    • The patch level is located in the "About" box accessible from the NeoOffice menu
    • The Mac OS X version is located in the "About This Mac" box accessible from the Apple menu
  4. Provide detailed steps to reproduce (cause) the bug; developers will need these steps to help them determine what causes the bug so that they can fix it.
    Note that OpenOffice.org and thus NeoOffice is a huge program, and the developer or QA team member working on your bug may not be familiar with the part of the program in which you've discovered the bug. Thus the more detailed steps you can supply, the more likely someone will be able to do something useful with your bug report.
  5. Attach supporting documents (screenshots, crash logs, sample documents, etc.) after submitting the bug; the "Create New Attachment" link is only present after the bug is submitted.
    • Attach a screenshot, if relevant
    • Attach the problematic document, if relevant, or email it to Patrick if it is sensitive
      N.B. Add attachments separately from comments (adding an attachment wipes out unsubmitted comments)
  6. If you are reporting a crash or a hang (beachball), attach (do not paste into the comments) a crash log or a sample; see instructions below.

Obtaining a crashlog or sample

Obtaining a crashlog when NeoOffice crashes

  • Option A: is CrashReporter enabled?
    Mac OS X has a great application called CrashReporter which generates crash reports when applications crash. It is enabled by default on Mac OS X.
    1. When the dialogue stating "The application NeoOffice has unexpectedly quit" (or "The application soffice.bin has unexpectedly quit") appears, click the "Submit Report..." button.
    2. Copy the entire contents of the "Crash Report:" text box and paste into a new plain-text document (in TextEdit, create a new document and choose Make Plain Text from the Format menu).
    3. Once you've saved the text file, you can dismiss the Crash Report dialogue.
      N.B. The wording of the dialogues vary between major Mac OS X versions.
    4. Attach this crashlog to the bug you filed.
  • Option B: the hard way (you've probably disabled CrashReporter)
    1. Open the Console application, located in the Utilities subfolder of the Applications folder.
    2. Click on the "Logs" toolbar icon if the logs drawer isn't showing on the left.
    3. In the list of logs on the left, select "~/Library/Logs" then "CrashReporter" then "soffice.bin.crash.log"
    4. Locate the appropriate log entry for the most recent crash. It should be the one at the bottom. Each individual crash log entry is separated by a line of asterisks from the next one above it; each entry has a date at the top of it.
    5. Select the entry, from the "Host name" down to the end of the entry and paste into a new plain-text document (in TextEdit, create a new document and choose Make Plain Text from the Format menu).
      N.B. The format of the crashlog varies between major Mac OS X versions.
    6. Attach this crashlog to the bug you filed.

Obtaining a sample when NeoOffice hangs (displays the spinning beachball)

  1. Do not "force quit" NeoOffice
  2. Open the Activity Monitor application, located in the Utilities subfolder of the Applications folder.
  3. On launch, Activity Monitor should display a window listing various "processes" that are running on your Mac.
  4. Select NeoOffice from the list of running processes.
  5. Click the "Inspect" button.
  6. In the window that opens, click the "Sample" button in the lower left corner; this will generate a "sample" that will help the developers determine why NeoOffice entered the hung state.
  7. When the sample is complete, save the file; you may now close the sample window and force quit NeoOffice.
  8. Attach the saved sample to the bug you filed.

Further Reading on Reporting Bugs

The following documents written by others provide further discussion of general "good bug-filing" practices:

Life-cycle of a Bug

This section explains each of the "states" a bug can have in Bugzilla and how bug moves from state to state. Both Bugzilla's "Status" and "Resolution" fields are explained.

Unconfirmed

All bugs begin with a status of "Unconfirmed" and a resolution of "None".

From "Unconfirmed", bugs usually end up "Assigned" if they are reproducible problems specific to NeoOffice, "Closed" as "Duplicate" if another bug covering the same problem has already been reported, or "Closed" as "OpenOffice.org bug" if the bug also exists in the equivalent version of OpenOffice.org/X11. Bugs "Closed" as "OpenOffice.org bug" should be entered by the reporter in the OpenOffice.org IssueZilla in order to ensure the OpenOffice.org developers responsible for the issue fix it, and the person closing the bug should prompt the reporter with this information:

Closing as this is an OpenOffice.org bug as the bug occurs in OOo 2.0.3. [or whatever the version of OOo is that is equivalent to the current version of NeoOffice]

Unfortunately, the current scope of the NeoOffice project is limited by resources to keeping a native version of OpenOffice.org running on Mac OS X and fixing OpenOffice.org feature bugs is outside that scope.

You can report the feature request in the OpenOffice.org issue tracker to get it on the radar of the core OpenOffice.org developers: http://qa.openoffice.org/issue_handling/pre_submission.html).

Sometimes "Unconfirmed" bugs are also "Closed" as "Not a bug" (if a feature works as designed, even if that is not the way the reporter thinks it should work), "Closed" as "Won't fix" (most often bugs in Mac OS X or Java, which can't be fixed except by Apple), or "Closed" as "Works for me" (if no one else can reproduce the bug and/or there is insufficient information in the bug report to determine the cause). NEW As of January 2005, there is a new "Mac OS X bug" resolution to use when closing an issue that is caused by a bug (or feature) of Mac OS X.

Duplicates

When bugs are "Closed" as "Duplicate", the number of the duplicated bug is added to the "Add Dependency" field of the bug that is being closed, e.g., if bug 1060 is a duplicate of bug 1048, enter 1048 in the "Add Dependency" field of bug 1060 when setting it to "Closed".

Bugs can be duplicates of other bugs that are "Assigned", "Fixed" (if the reporter is not using the latest version or patch), "New", or "Closed" (all resolutions except "Duplicate"; a bug cannot be a duplicate of a duplicate, so the bug is marked as a duplicate of the original bug).

If a bug is a duplicate of another "Unconfirmed" bug, that is sometimes enough to warrant changing the the first bug to "Assigned"—but see below for additional items a bug really should have before being set to "Assigned". In the case of two "Unconfirmed" bugs that are duplicates of each other, usually the oldest bug is set to "Assigned" and the newer one marked as the duplicate. However, if the newer bug has a clearer bug report, more information, supporting documents, etc., then the newer bug should be set to "Assigned" and the older one closed as a duplicate of the newer one.

Assigned

Bugs that can be reproduced by a developer or a member of the triage team are changed to the status "Assigned" and assigned to the relevant developer to fix. Generally bugs need a clear set of instructions to reproduce the problem as well supporting "documentation" (screenshot, sample document, Mac OS X crashlog or sample, etc.) before they are changed from "Unconfirmed" to "Assigned".

Most "Assigned" bugs are changed to status "Resolved" with a resolution of "Fixed", but bugs that cannot be fixed at the moment are changed to "New" with a resolution of "Deferred". "Assigned" bugs can also be changed to "Closed" as "Not a bug" or "Closed" as "Won't fix" after the developer investigates the issue and determines the problem lies elsewhere or cannot be fixed.

"Assigned" bugs that a developer has fixed often remain in the "Assigned" state until the fix appears in an official patch, at which point they are set to status "Resolved" and resolution "Fixed" (and, once the fix appears in a completely new binary, to status "Closed" and resolution "Fixed"); in any case, only developers should modify the status or resolution of bugs that are "Assigned" or "Resolved".

New

This status is for bugs that the developers intend to fix but for one reason or another cannot fix at the moment; these bugs carry the resolution "Deferred".

Often bugs are assigned this status due to problems in supporting software (Mac OS X or Java) that we know are resolved in a future version of the supporting software and can be fixed when users or NeoOffice upgrade to the newer version. Some bug are also marked "New" because they are fixable but there is not enough developer time or manpower to fix them at the moment and other bugs or development priorities are more important.

Resolved

Bugs that are fixed are "Resolved" as "Fixed" once the developer has coded a solution that fixes the bug. In time the developers will issue a "patch" that includes the fix so that users can check and ensure the bug has been fixed. If a patch does not fix a bug, it becomes "Reopened"; once the fix for the bug has been included in a full downloadable build of NeoOffice (a "release", such as NeoOffice 1.2 Alpha or NeoOffice/J 1.1), a bug is "Closed". (Only the release engineer should change a bug from "Resolved Fixed" to "Closed Fixed"; this ensures that the fix is present in the final release and no bug gets overlooked.)

Reopened

If a bug that was "Resolved" as "Fixed" turns out not to have been fixed by a patch, the reporter of the bug should change the bug's status to "Reopened" and set the resolution back to "None". Similarly, if a bug that was marked "Closed" in a certain release of NeoOffice has reappeared in a later release of NeoOffice, it, too, should be changed to "Reopened" and "None".

If a bug that was "Closed" as "Works for me" is still present and the reporter has new information or better steps to reproduce the bug, it should also be changed to "Reopened" and "None" (technically it should be set back to "Unconfirmed" and "None" until someone can reproduce the bug, but our bugzilla is "manual" and doesn't have the "automatic" logic to do that).

Closed

"Closed" is the final status of all bugs in the NeoOffice Bugzilla. Bugs that have been fixed and whose fixes have appeared in a full release of NeoOffice are set to "Closed" and "Fixed".

Bugs that were "Closed" without being fixed have one of the following resolutions:

  • "Closed" as "Duplicate", if another bug covering the same problem has already been reported; see the subsection on Duplicates under "Unconfirmed" for more information
  • "Closed" as "OpenOffice.org bug", if the bug also exists in the equivalent version of OpenOffice.org/X11
  • "Closed" as "Not a bug", if a feature works as designed, even if that is not the way the reporter expects the feature to work
  • "Closed" as "Won't fix", usually when the bug is really in Mac OS X or Java, which can't be fixed except by Apple, or bugs which want a behavior not desired by the developers or the majority of the userbase
  • NEW "Closed" "Mac OS X bug", if the issue is caused by a bug (or feature) of Mac OS X.
  • "Closed" as "Works for me", if no one else can reproduce the bug and/or there is insufficient information in the bug report to determine the cause

Verified

This status is not used at all in the NeoOffice Bugzilla. Unless a "Fixed" bug is set to "Reopened", the bug is assumed to be fixed, so there is no need to 'verify' that it is fixed.

Chart

The following chart provides a graphical explanation of a bug's life-cycle.

Life-cycle of a Bug



Click for full-sized image (73 KB)
Personal tools