<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
<style type="text/css">
/* <![CDATA[ */ @import "/branding/css/tigris.css"; /* ]]> */
</style>
  <script src="/branding/scripts/sc.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="/branding/css/print.css" media="print" />

  <title>Project File sharing</title>
 </head>

 <body class="docs" onLoad="self.focus()">
  <div class="docs" id="projectissues">
   <h2>Project Issues</h2>

   <div id="toc">
    <ul>
     <li><strong><a href="/nonav/servlets/HelpTOC">Help index</a></strong></li>
    </ul>

    <ul>
     <li>
      <a href="/nonav/docs/ProjectMemberResources.html">Project resources for members</a> 

      <ul>
       <li><a href="/nonav/docs/Learning.html">Learning about projects</a></li>

       <li><a href="/nonav/docs/ProjectHome.html">Project Home Page</a></li>

       <li><a href="/nonav/docs/ProjectNews.html">Project News</a></li>

          <li><a href="/nonav/docs/ProjectMemberList.html">Project Membership</a></li>

       <li><a href="/nonav/docs/ProjectMail.html">Project Mailing Lists</a></li>

          <li><a href="/nonav/docs/ProjectDocuments.html">Project File sharing</a></li>

       <li><a href="/nonav/docs/ProjectSource.html">Project Source Code</a></li>

          <li> Project Issue Tracking 
            <ul>
         <li><a href="#accessissues">Accessing project issues</a></li>

         <li><a href="#aboutIZ">About the IssueZilla tool</a></li>

         <li><a href="#useraccounts">Setting your issue tracking user preferences</a></li>

         <li><a href="#permissions">About your issue tracking permissions</a></li>
        </ul>
       </li>
      </ul>
     </li>

     <li><a href="/nonav/docs/hostedtools.html">Hosted tools</a></li>

     <li><a href="/nonav/docs/ProjectAdd.html">Creating a new project</a></li>
    </ul>

    <ul>
     <li><a href="/nonav/docs/ddIssues_EnterModify.html">Entering and modifying issues</a></li>

     <li><a href="/nonav/docs/ddIssues_Query.html">Querying and tracking issues</a></li>

     <li><a href="/nonav/docs/ddIssues_Reports.html">Generating status reports about project issues</a></li>

     <li><a href="#Moreinfo">More how-to information about issues and issue tracking</a></li>
    </ul>
   </div>

   <h3><a id="accessissues" name="accessissues">Accessing issue tracking</a></h3>

   <p>All development activities for each project hosted on this site are tracked in a unique database. The <strong>Issue tracking</strong> link on the left navigation bar displays the <b>Issue tracking</b> page, the entry point to that project's issue database. Issue tracking provides the following benefits:</p>

   <ol>
    <li>Ability to chart the progress of individuals and the overall project</li>

    <li>Tracking and maintainance of project history</li>

    <li>Generation and reporting of ongoing to-do lists for all project members.</li>
   </ol>

   <p>The different sections appearing in the <b>Issue tracking</b> page indicate the following issue tracking options available to you:</p>

   <dl>
    <dt><a href="/nonav/docs/ddIssues_Query.html"><b>Query Database of Issues</b></a></dt>

    <dd>Search project issues by number, keywords, assignee, or other criteria.</dd>

    <dt><a href="/nonav/docs/ddIssues_EnterModify.html"><b>Enter An Issue</b></a></dt>

    <dd>Write and commit an issue report to the database.</dd>

    <dt><a href="/nonav/docs/ddIssues_Query.html#trackissue"><b>My Issues</b></a></dt>

    <dd>View a list of project issues assigned to you.</dd>

    <dt><a href="#useraccounts"><b>My Preferences</b></a></dt>

    <dd>Configure your issue tracker user settings.</dd>
   </dl>

   <h3><a id="aboutIZ" name="aboutIZ">About IssueZilla</a></h3>

   <p>IssueZilla is the issue tracking tool used on this site. While it is a variant of BugZilla -- a bug tracking system you may already be familiar with -- IssueZilla is a more generalized tool for tracking many different kinds of activities in collaborative development projects. Additionally, IssueZilla does not require a separate login as BugZilla does. IssueZilla classifies issues into several types:</p>

   <ul>
    <li>Defects (a.k.a. "bugs")</li>

    <li>Enhancements</li>

    <li>Features</li>

    <li>Tasks</li>

    <li>Patches</li>
   </ul>

   <p>Each hosted project on this site has it's own, unique issues database. For open source projects in IssueZilla, all registered users may query, view, and report issues, while proprietary projects limit access to project members.</p>

   <p>Project members have additional permissions within IssueZilla to modify and reassign issues, as well as generate reports. Project members are also notified automatically by email whenever issues are assigned to them or there is activity on issues affecting their work.</p>

   <p>Entering the tasks you're planning to work on as issues helps you devise and follow a work plan. Because everyone is aware of each project member's area of work, you can avoid duplicating efforts and even help out or offer feedback to other project members. Effective issue tracking requires an understanding of the IssueZilla tool and a working knowledge of what constitutes a well-written issue report.</p>

   <h3><a id="useraccounts" name="useraccounts">Setting your issue tracking user preferences</a></h3>

   <p>When you join a hosted development project on this site, you automatically get an IssueZilla account for access to that project's issues.</p>

   <p>Information about your account is available either by clicking the <strong>My Preferences</strong> link on the <b>Issue Tracking</b> page. Once you have entered the issue tracking area of the site you can click on the <strong>Edit prefs</strong> link. You have several options to change your user settings:</p>

   <dl>
    <dt>Email settings</dt>

    <dd>Controls your automatic email notification settings.</dd>

    <dt>Page footer</dt>

    <dd>Include/exclude "My issues" or your named, custom queries in every IssueZilla page footer.</dd>

    <dt>Permissions</dt>

    <dd>Displays your issue tracking permissions but cannot be changed because permissions are assigned by the Project Owner. (See next section.)</dd>
   </dl>

   <h3><a id="permissions" name="permissions">About issue tracking permissions</a></h3>

   <p>Once a user becomes a member of a project, he or she is granted additional IssueZilla permissions beyond the default database query capabilities. Permissions can be viewed by clicking on the <strong>My Preferences</strong> link on the <b>Issue tracking</b> page, or the <strong>My preferences</strong> link on the Issues page.</p>

   <p>Issue tracking permissions depend upon project role:</p>

   <ul>
    <li>Observers can create and modify issues, but can make changes to only their own issues. Observers have the ability to comment on any issue.</li>

    <li>Developers (code or content) can report and modify their own and other project issues. If they have been granted the "Can edit all aspects of any issue" permission, they have the ability to alter all issue characteristics, including milestones and issue assignments.</li>

    <li>Project initiators automatically are granted administrative level IssueZilla permissions with additional rights to configure issue tracking for the project. Project initiators can also assign IssueZilla-specific permissions to other project members.</li>
   </ul>

   <p>Additional permissions can be requested through the project owner. You may need to request a new project role.</p>

   <p>Permissions affect the lifecycle and resolution of issues. For example, if you have the "Can confirm an issue" permission, then you can change the status of any <b>UNCONFIRMED</b> issue to <b>NEW</b> . A change in issue status sends an alert to the owner and all other project members associated with the issue.To understand more about issue status, read more about the <a href="/nonav/docs/issue_lifecycle.html">lifecycle of issues</a>.</p>

   <h3><a id="Moreinfo" name="Moreinfo">More resources about issues and issue tracking</a></h3>

   <ul>
    <li><a href="/nonav/docs/issue_lifecycle.html">The issue life cycle</a></li>

    <li><a href="/nonav/docs/issuewritinghelp.html">Issue writing guidelines</a></li>

    <li><a href="/nonav/docs/issuezilla_tipsandtricks.html">IssueZilla tips and tricks</a></li>

    <li><a href="/nonav/docs/contributing_patches.html">Contributing patches</a></li>

    <li><a href="http://www.trilobyte.net/barnsons/FAQ.html">BugZilla FAQ</a>**</li>

    <li><a href="http://www.mozilla.org/quality/help/bugzilla-helper.html">Step-by-step help for bug entry</a>**</li>

    <li><a href="http://www.mozilla.org/quality/bug-writing-guidelines.html">BugZilla guide to writing good bug reports</a>**</li>

    <li><a href="http://scarab.tigris.org">Scarab</a>, an open source issue tracking development project</li>
   </ul>

   <p><b><i>**</i></b> These links listed are associated with BugZilla, but offer useful bug-writing guidelines that are applicable to IssueZilla. Be aware that there are differences between the two tools. Parts of BugZilla documentation may not apply or may not address certain features in IssueZilla, and vice versa. Because IssueZilla is an open source derivative of BugZilla (version 2.11), it is still a work in progress. For those who are interested in more information about this, visit <a href="http://mozilla.org/bugs/">Mozilla.org</a>.</p>

   <p>If you are interested in finding out about other bug tracking systems being developed, see the <a href="http://scarab.tigris.org">scarab</a> open source project.</p>

   <p><b><i>A note about IssueZilla and cookies</i></b> : Cookies are a prerequisite for creating an account and logging in to IssueZilla. If cookies are disabled on your system, you will at need to enable the following cookies: "Issuezilla_login" or "Issuezilla_logincookie." Other than logging in, IssueZilla uses cookies to cache an issue's current version and for ordering the most recent query.cgi search during a session.</p>

   <div class="courtesylinks">
    <p><a href="#toc">Top</a> | <a href="/nonav/servlets/HelpTOC">Help index</a></p>
   </div>
  </div>
 </body>
</html>


