<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
    <meta name="generator" content="HTML Tidy, see www.w3.org">
    <meta http-equiv="content-type" content=
    "text/html; charset=UTF-8">

    <style type="text/css"> /* <![CDATA[ */
    @import "/css/qa.css";
    /* ]]> */</style>
  <title>Issue handling</title>
  </head>

  <body>
    <div class="qa">
      <h1>Issue Handling</h1>
      <p>This page collects information around handling issues (Bugs, RFEs (requests for enhancements), etc.) in
      IssueTracker. These documents look on worklow in more detail than our
      <a href="http://qa.openoffice.org/issue_handling/project_issues.html">overview</a>
      and the guidelines for <a href="http://qa.openoffice.org/issue_handling/bug_writing_guidelines.html">reporting issues</a>.</p>

      <p>
        <table width="100%" border="0" cellpadding="4" cellspacing="0">
          <col width="76*">
          <col width="175*">
          <col width="5*">

          <tr class="MainTableHeader">
            <td colspan="2" width="100%"> Workflow charts </td>
          </tr>

          <tr class="InnerTableHeader">
            <td width="20%"> Title </td>
            <td> Description </td>
          </tr>

          <tr class="TableRow">
            <td>
              <a href="workflowcharts/defect_triaging.pdf"> <b>A Bug's life time</b> </a>
            </td>
            <td>
              Describes the workflow for handling normal bugs - these is what you will probably encounter most in
              IssueTracker.<br/>
              If your're interested in what will happen to a bug you submitted, or if you want to help by triaging
              bugs, you should look at this workflow.
            </td>
          </tr>

          <tr class="TableRow">
            <td>
              <a href="workflowcharts/taskhandling_workflow_feature_specification.html"> <b>FEATURE: Specification Writing</b> </a>
            </td>
            <td>
              Describes the workflow for specifying a feature, accompanied in IssueTracker.
            </td>
          </tr>

          <tr class="TableRow">
            <td>
              <a href="workflowcharts/taskhandling_workflow_feature_implementation.html"> <b>FEATURE: Implementation</b> </a>
            </td>
            <td>
              Describes the workflow for specifying a feature, accompanied in IssueTracker.
            </td>
          </tr>

          <tr class="TableRow">
            <td>
              <a href="workflowcharts/taskhandling_workflow_feature_QA.html"> <b>FEATURE: Quality Assurance (QA)</b> </a>
            </td>
            <td>
              Describes the workflow for QA'ing a feature, accompanied in IssueTracker.
            </td>
          </tr>

          <tr class="TableRow">
            <td>
              <a href="workflowcharts/RFE_issues_by_QA.sxd"> <b>QA for RFEs</b> </a>
            </td>
            <td>
              RFEs are "Requests for Enhancements" - these are those issues where people suggest new features
              to be implemented, or existing features to be enhanced. This workflow describes how RFEs are handled by QA.<br/>
              Note that QA is responsible for ensuring that RFEs are in a usable form before they're passed to
              team which evaluates RFEs.
            </td>
          </tr>

          <tr class="TableRow">
            <td>
              <a href="workflowcharts/evaluating_RFEs.html"><b>Evaluating RFEs</b></a>
            </td>
            <td>
              This workflow describes how RFEs are handled by the user experience team.
            </td>
          </tr>

        </table>
      </p>

      <p>
        <table width="100%" border="0" cellpadding="4" cellspacing="0">
          <col width="76*">
          <col width="175*">
          <col width="5*">

          <tr class="MainTableHeader">
            <td colspan="2" width="100%"> Policies </td>
          </tr>

          <tr class="InnerTableHeader">
            <td width="20%"> Title </td>
            <td> Description </td>
          </tr>

          <tr class="TableRow">
            <td>
              <a href="policies/regressions.html"> <b>Regressions</b> </a>
            </td>
            <td>
              This document describes the policy with respect to regression issues, i.e. issues describing
              broken functionality.
            </td>
          </tr>

          <tr class="TableRow">
            <td>
              <a href="basic_rules.html"> <b>Basic IssueTracker Rules</b> </a>
            </td>
            <td>
              This descument describes the very basic rules one should know - and respect - when submitting
              issues, or adding comments to issues, in IssueTracker.
            </td>
          </tr>
        </table>
      </p>

      <p>
        <table width="100%" border="0" cellpadding="4" cellspacing="0">
          <col width="76*">
          <col width="175*">
          <col width="5*">

          <tr class="MainTableHeader">
            <td colspan="2" width="100%"> Documents </td>
          </tr>

          <tr class="InnerTableHeader">
            <td width="20%"> Title </td>
            <td> Description </td>
          </tr>

          <tr class="TableRow">
            <td>
              <a href="handling_RFEs.html"> <b>Handling RFEs</b> </a>
            </td>
            <td>
              This document proposes a handling for RFEs, to consolidate them (towards the planning of a new
              release) into so-called requirements. This allows to get a better overview about requirements
              people have to OpenOffice.org, and to decide, on a level which is more general than individual
              issues, about the focus for the next release(s).
            </td>
          </tr>
        </table>
      </p>

      <hr/>
      <p align="right"> <em>Last modified: $Date: 2007/02/23 10:42:34 $</em> </p>
    </div>
  </body>
</html>

