Bugzilla Guide

From NeoWiki

Revision as of 12:27, 13 October 2005 by Sardisson (Talk | contribs)
Jump to: navigation, search

Contents

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

Before reporting a bug in NeoOffice/J...

  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 contstantly 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 the NeoOfficeJ-1.1 folder in your user's Library folder to another location and restart NeoOffice/J.
    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/J 1.1 "Final" is equivalent to OpenOffice.org/X11 1.1.4); if so, file a bug report in the OpenOffice.org IssueZilla instead, since it is an OpenOffice.org bug.
  3. If the problem bug 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/J 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/J from the Project menu and enter search terms.
  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/J application
    This helps us determine if the bug only exists on a particular version of Mac OS X—as is often the case; 10.4 seems particularly buggy—and at which patch level the bug began to appear.
    • The patch level is located in the "About" box accessible from the NeoOffice/J 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.
  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/J 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/J 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:" textarea 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/J hangs (displays the spinning beachball)

  1. Do not "force quit" NeoOffice/J
  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/J 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/J entered the hung state.
  7. When the sample is complete, save the file; you may now close the sample window and force quit NeoOffice/J.
  8. Attach the saved sample to the bug you filed.


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/J, "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 in order to ensure the OpenOffice.org developers responsible for the issue fix it.

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).

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.

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/J 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/J (a "release", such as NeoOffice/J 1.1 Alpha 2 or NeoOffice/J 1.1), a bug is "Closed".

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/J has reappeared in a later release of NeoOffice/J, 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".

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/J 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
  • "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


http://www.mindspring.com/~sardisson/neoj/bugzilla_lifecycle_th.jpg

Click for full-sized image (81 KB)


Things to Do

  1. New front page (bypassable for certain users, i.e. admins or long-time good bugfilers) or something like Bugzilla Helper
    • Steps to take before filing a bug
      • Install latest patch [link]
      • Reboot
      • Fresh profile
      I.e., is it reproducible, esp. in up-to-date stock conditions
      • Attempt to reproduce in corresponding version of OOo/X11 if possible (?)
      • Search for duplicate (select NeoOffice/J from the Project menu)
    • Scope of bugs, i.e. what's a Neo/J bug vs. an OOo bug/limitation vs. an Apple bug/limitation
    • How to submit a useful bug report
  2. Write "How to submit a useful bug report"
    • One issue per bug report
    • Include Patch level and OS version
      • About NeoOffice/J in the Neo/J menu; About This Mac in the Apple menu
    • Provide crashlog for crashes and sample for hangs - Camino crash/hang FAQs
      sardisson wrote the crash/hang FAQs for Camino, so we just need to copy them over here and tweak for the NeoBugzilla
      • How to get a crashlog to attach
        • Option A: is crashreporter enabled?
          • When "Unexpectedly quit" dialogue appears, select "Submit Report..."
          • Copy/paste "Crash Report:" section into new text file.
        • Option B: the hard way
          • Open Applications > Utilities > Console
          • Click on the "Logs" toolbar icon if the logs drawer isn't showing on the left.
          • Navigate through the list until you get to ~/Library/Logs > CrashReporter > soffice.bin.crash.log
          • Locate the appropriate log for the most recent/remembered crash. It should be the one at the bottom. Each individual crash log is separated by a line of asterisks from the next one above it; each one has a date at the top of it.
          • Copy from the "Host name" down to the end. Edit > Copy. Places a copy of the log onto the Clipboard
          • Open TextEdit and create a new plain-text file. Paste the crashlog. (Hmm, isn't there an "export" function in Console.app that will grab the last log entry?)
      • How to get a sample to attach
        • Open Applications > Utilities > Activity Monitor
        • Select Neo/J from list of running processes
        • Click "Inspect" button
        • Click "Sample" button (lower left corner of resulting window)
        • When sampling is completed, save resulting text file
    • Attach (not paste) crashlog or sample
      • After bug is filed
      • Add attachments separately from comments (attachment refresh wipes comments, currently no warning); add warning on bug pages along the lines of the text in the OOo IssueZilla:
        Note: please commit any changes to this issue before creating a new attachment, or changes will be lost.
    • Detailed steps to reproduce
    • Attach screenshot if relevant
    • Attach problematic document, if relevant, or email it to Patrick if sensitive
    • Example of a pretty solid report: http://bugzilla.neooffice.org/bug.php?op=show&bugid=554
    • Oscar provides two links to general "good bug-filing behavior" articles. We should be sure to include the highlights and perhaps link to them "for more details" or something:
  3. Change Advanced Query to be the default search
    Basic query is absolutely useless for finding duplicates! I'm having better luck with basic query now
    (select NeoOffice/J from the Project menu)
Personal tools