[%# The contents of this file are subject to the Mozilla Public
  # License Version 1.1 (the "License"); you may not use this file
  # except in compliance with the License. You may obtain a copy of
  # the License at http://www.mozilla.org/MPL/
  #
  # Software distributed under the License is distributed on an "AS
  # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  # implied. See the License for the specific language governing
  # rights and limitations under the License.
  #
  # The Original Code is the Bugzilla Bug Tracking System.
  #
  # The Initial Developer of the Original Code is Netscape Communications
  # Corporation. Portions created by Netscape are
  # Copyright (C) 1998 Netscape Communications Corporation. All
  # Rights Reserved.
  #
  # Contributor(s): Terry Weissman <terry@mozilla.org>
  #                 Gervase Markham <gerv@gerv.net>
  #%]

[% PROCESS "global/field-descs.none.tmpl" %]
[% INCLUDE global/header.html.tmpl title = "A $terms.Bug's Life Cycle" %]

<p>
The <b>status</b> and <b>resolution</b> fields define and track the life
cycle of [% terms.abug %].  
</p>

<a name="status"></a>
<a name="resolution"></a>

<table border="1" cellpadding="4">
  <tr align="center" valign="top">
    <td width="50%">
      <h1>STATUS</h1>
    </td>

    <td>
      <h1>RESOLUTION</h1>
    </td>
  </tr>

  <tr valign="top">
    <td>The <b>status</b> field indicates the general health of a 
    [% terms.bug %]. Only certain status transitions are allowed.</td>

    <td>The <b>resolution</b> field indicates what happened to this
    [%+ terms.bug %].</td>
  </tr>

  <tr valign="top">
    <td>
      <dl>
        <dt>
          <b>[% display_value("bug_status", "UNCONFIRMED") FILTER html %]</b>
        </dt>
        <dd>
          This [% terms.bug %] has recently been added to the database. 
          Nobody has validated that this [% terms.bug %] is true. Users
          who have the "canconfirm" permission set may confirm
          this [% terms.bug %], changing its state to [% display_value("bug_status", "NEW") FILTER html %]. Or, it may be
          directly resolved and marked [% display_value("bug_status", "RESOLVED") FILTER html %].
        </dd>

        <dt>
          <b>[% display_value("bug_status", "NEW") FILTER html %]</b>
        </dt>
        <dd>
          This [% terms.bug %] has recently been added to the assignee's
          list of [% terms.bugs %] and must be processed. [% terms.Bugs %] in
          this state may be accepted, and become <b>[% display_value("bug_status", "ASSIGNED") FILTER html %]</b>, passed
          on to someone else, and remain <b>[% display_value("bug_status", "NEW") FILTER html %]</b>, or resolved and marked
          <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>.
        </dd>

        <dt>
          <b>[% display_value("bug_status", "ASSIGNED") FILTER html %]</b>
        </dt>
        <dd>
          This [% terms.bug %] is not yet resolved, but is assigned to the 
          proper person. From here [% terms.bugs %] can be given to another 
          person and become <b>[% display_value("bug_status", "NEW") FILTER html %]</b>, or
          resolved and become <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>.
        </dd>

        <dt>
          <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b>
        </dt>
        <dd>
          This [% terms.bug %] was once resolved, but the resolution was 
          deemed incorrect. For example, a <b>[% display_value("resolution", "WORKSFORME") FILTER html %]</b> [% terms.bug %] is
          <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b> when more information shows up and
          the [% terms.bug %] is now reproducible. From here [% terms.bugs %] are
          either marked <b>[% display_value("bug_status", "ASSIGNED") FILTER html %]</b> or
          <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>.
        </dd>
      </dl>
    </td>

    <td>
      <dl>
        <dd>
          No resolution yet. All [% terms.bugs %] which are in one of 
          these "open" states have the resolution set to blank. All 
          other [% terms.bugs %] will be marked with one of the following 
          resolutions.
        </dd>
      </dl>
    </td>
  </tr>

  <tr valign="top">
    <td>
      <dl>
        <dt>
          <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>
        </dt>
        <dd>
          A resolution has been taken, and it is awaiting verification by
          QA. From here [% terms.bugs %] are either re-opened and become 
          <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b>, are marked
          <b>[% display_value("bug_status", "VERIFIED") FILTER html %]</b>, or are closed for
          good and marked <b>[% display_value("bug_status", "CLOSED") FILTER html %]</b>.
        </dd>

        <dt>
          <b>[% display_value("bug_status", "VERIFIED") FILTER html %]</b>
        </dt>
        <dd>
          QA has looked at the [% terms.bug %] and the resolution and 
          agrees that the appropriate resolution has been taken. [% terms.Bugs %] remain
          in this state until the product they were reported
          against actually ships, at which point they become
          <b>[% display_value("bug_status", "CLOSED") FILTER html %]</b>.
        </dd>

        <dt>
          <b>[% display_value("bug_status", "CLOSED") FILTER html %]</b>
        </dt>
        <dd>
          The [% terms.bug %] is considered dead, the resolution is correct. 
          Any zombie [% terms.bugs %] who choose to walk the earth again must 
          do so by becoming <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b>.
        </dd>
      </dl>
    </td>

    <td>
      <dl>
        <dt>
          <b>[% display_value("resolution", "FIXED") FILTER html %]</b>
        </dt>
        <dd>
          A fix for this [% terms.bug %] is checked into the tree and 
          tested.
        </dd>

        <dt>
          <b>[% display_value("resolution", "INVALID") FILTER html %]</b>
        </dt>
        <dd>
          The problem described is not [% terms.abug %].
        </dd>

        <dt>
          <b>[% display_value("resolution", "WONTFIX") FILTER html %]</b>
        </dt>
        <dd>
          The problem described is [% terms.abug %] which will never be 
          fixed.
        </dd>

        <dt>
         <b>[% display_value("resolution", "DUPLICATE") FILTER html %]</b>
        </dt>
        <dd>
          The problem is a duplicate of an existing [% terms.bug %].
          Marking [% terms.abug %] duplicate requires the [% terms.bug %]#
          of the duplicating [% terms.bug %] and will at least put
          that [% terms.bug %] number in the description field.
        </dd>

        <dt>
          <b>[% display_value("resolution", "WORKSFORME") FILTER html %]</b>
        </dt>
        <dd>
          All attempts at reproducing this [% terms.bug %] were futile, 
          and reading the code produces no clues as to why the described
          behavior would occur. If more information appears later,
          the [% terms.bug %] can be reopened.
        </dd>

        <dt>
          <b>[% display_value("resolution", "MOVED") FILTER html %]</b>
        </dt>
        <dd>
          The problem was specific to a related product 
          whose [% terms.bugs %] are tracked in
          another [% terms.bug %] database.
          The [% terms.bug %] has been moved to that database.
        </dd>
      </dl>
    </td>
  </tr>
</table>

<h2><a name="importance">Importance</a></h2>
The importance of [% terms.abug %] is described as the combination of
its <a href="#priority">priority</a> and <a href="#bug_severity">severity</a>,
as described below.

<h2><a name="priority">Priority</a></h2>
This field describes the importance and order in which [% terms.abug %]
should be fixed compared to other [% terms.bugs %]. This field is utilized
by the programmers/engineers to prioritize their work to be done.

<h2><a name="bug_severity">Severity</a></h2>
This field describes the impact of [% terms.abug %]. 

<table>
  <tr>
    <th>[% display_value("bug_severity", "blocker") FILTER html %]</th>

    <td>Blocks development and/or testing work</td>
  </tr>

  <tr>
    <th>[% display_value("bug_severity", "critical") FILTER html %]</th>

    <td>crashes, loss of data, severe memory leak</td>
  </tr>

  <tr>
    <th>[% display_value("bug_severity", "major") FILTER html %]</th>

    <td>major loss of function</td>
  </tr>

  <tr>
    <th>[% display_value("bug_severity", "normal") FILTER html %]</th>

    <td>regular issue, some loss of functionality under specific circumstances</td>
  </tr>


  <tr>
    <th>[% display_value("bug_severity", "minor") FILTER html %]</th>

    <td>minor loss of function, or other problem where easy
    workaround is present</td>
  </tr>

  <tr>
    <th>[% display_value("bug_severity", "trivial") FILTER html %]</th>

    <td>cosmetic problem like misspelled words or misaligned
    text</td>
  </tr>

  <tr>
    <th>[% display_value("bug_severity", "enhancement") FILTER html %]</th>

    <td>Request for enhancement</td>
</table>

<h2><a name="rep_platform">Platform</a></h2>
This is the hardware platform against which the [% terms.bug %] was
reported. Legal platforms include: 

<ul>
  <li>[% display_value("rep_platform", "All") FILTER html %] (happens on all platforms; cross-platform [% terms.bug %])</li>

  <li>[% display_value("rep_platform", "Macintosh") FILTER html %]</li>

  <li>[% display_value("rep_platform", "PC") FILTER html %]</li>
</ul>
<b>Note:</b> When searching, selecting the option 
<em>[% display_value("rep_platform", "All") FILTER html %]</em> does not 
select [% terms.bugs %]
assigned against any platform. It merely selects [% terms.bugs %] that are
marked as occurring on all platforms, i.e. are designated 
<em>[% display_value("rep_platform", "All") FILTER html %]</em>. 

<h2><a name="op_sys">Operating System</a></h2>
This is the operating system against which the [% terms.bug %] was
reported. Legal operating systems include: 

<ul>
  <li>[% display_value("op_sys", "All") FILTER html %] (happens on all operating systems; cross-platform
  [% terms.bug %])</li>

  <li>Windows</li>

  <li>Mac OS</li>

  <li>Linux</li>
</ul>
Sometimes the operating system implies the platform, but not
always. For example, Linux can run on PC and Macintosh and
others. 

<h2><a name="assigned_to">Assigned To</a></h2>

<p>
This is the person in charge of resolving the [% terms.bug %]. Every time
this field changes, the status changes to <b>[% display_value("bug_status", "NEW") FILTER html %]</b> to make it
easy to see which new [% terms.bugs %] have appeared on a person's list.</p>

<p>
The default status for queries is set to [% display_value("bug_status", "NEW") FILTER html %],
[%+ display_value("bug_status", "ASSIGNED") FILTER html %] and [% display_value("bug_status", "REOPENED") FILTER html %].
When searching for [% terms.bugs %] that have been resolved or
verified, remember to set the status field appropriately. 
</p>

[% IF Param("use_see_also") %]
  <h2><a name="see_also"></a>See Also</h2>

  <p>This allows you to refer to [% terms.bugs %] in other installations.
    You can enter a URL to a [%+ terms.bug %] in the "Add [% terms.Bug %] URLs"
    field to note that that [% terms.bug %] is related to this one. You can
    enter multiple URLs at once by separating them with a comma.</p>

  <p>You should normally use this field to refer to [% terms.bugs %] in 
    <em>other</em> installations. For [% terms.bugs %] in this 
    installation, it is better to use the "Depends On" and "Blocks"
    fields.</p>
[% END %]

[% INCLUDE global/footer.html.tmpl %]
