<HTML>

<HEAD>
<TITLE>Bugs, Enhancements, Feature Requests</TITLE>
<META NAME="description" CONTENT="Bugs, Feature Requests, Enhancements - how to report a bug, how to browse existing bugs">
<META NAME="NAV_LINK" content="Issue Tracking">
<link rel="stylesheet" type="text/css" HREF="../netbeans.css">
</HEAD>

<BODY>

<h1>Issues = Bugs, Feature Requests, and Enhancements</h1>
<h2>File an Issue</h2>

<p>To file an issue (bug or feature request) in the netbeans.org bugtracking system (Bugzilla):

<ol>
  <li>
  <p><A HREF="https://netbeans.org/people/new">Join netbeans.org</A>, and log in;&nbsp;&nbsp;&nbsp;<em>(<a 
href="http://wiki.netbeans.org/wiki/view/FaqWhyRegisterToSubmitBug">Why do I need to Join?</a>)</em></p>
  </li>
  <li><p><A HREF="../kb/index.html">Check the Docs &amp; Support Resources</A> 
  to see if your question is answered in the usersguide or FAQs;</p>
  </li>
  <li><p>Check to see if your issue has already been reported:
    <form method="get" action="https://netbeans.org/bugzilla/buglist.cgi">
      <table>
	<tr>
	 <td> 
	  &nbsp;&quot;Search the "summary" fields of open bugs:
	 </td>
	 <td style="padding-left:8px;">
	  <INPUT TYPE="TEXT" NAME="short_desc" SIZE="25">
	 </td>
	 <td>
	  <INPUT TYPE="image" BORDER="0" VALIGN="middle" SRC="../images_www/v4/btn_search.gif" width="59" height="13" alt="Issue Search">
	  <INPUT TYPE="hidden" MULTIPLE NAME="bug_status" VALUE="NEW">
          <INPUT TYPE="hidden" MULTIPLE NAME="bug_status" VALUE="STARTED">
          <INPUT TYPE="hidden" MULTIPLE NAME="bug_status" VALUE="REOPENED">
          <INPUT TYPE="hidden" NAME="short_desc_type" VALUE="allwordssubstr">
	  <input type="hidden" name="query_format" value="advanced">
	 </td>
	</tr>
</table></form>
<form method="get" action="https://netbeans.org/bugzilla/buglist.cgi">
<table>
	<tr>
	 <td>
	  &nbsp;&quot;Search the "description" fields of open bugs:
	 </td>
	 <td>
	  <INPUT TYPE="TEXT" NAME="quicksearch" SIZE="25">
	  </td>
	 <td>
	  <INPUT TYPE="image" BORDER="0" VALIGN="middle" SRC="../images_www/v4/btn_search.gif" width="59" height="13" alt="Issue Search">
	  
	 </td>
	</tr> 
	<tr>
	 <td> &nbsp;</td>
	 <td style="text-align:right;"> <span class="articledate">(<A HREF="https://netbeans.org/bugzilla/query.cgi?format=advanced">Advanced Search</A>)</span></td>
	 <td> &nbsp;</td>
	</tr>
      </table>
      
    </form>
  </p></li>
  <li><div class='b-all bg-sky innerpadding'><a href="https://netbeans.org/bugzilla/enter_bug.cgi">Enter a New Issue</a>
  for the NetBeans IDE or NetBeans Platform &nbsp;&nbsp;<em>(Cookies must be enabled)</em></div></li>
</ol>

<br/>

<h2>Help - This Looks Complicated!</h2>
<p>If you're new to Bugzilla, take a moment to browse these introductory docs.</p>
<BR />
<UL>
<LI><A HREF="http://wiki.netbeans.org/IssueReportingGuidelines">A Step by Step Guide</A> to filing a useful bug report for the NetBeans Community 
<LI><A HREF="https://netbeans.org/projects/help/pages/IssueTracking">About NetBeans.org Issue Tracking</A>
<LI><A HREF="https://netbeans.org/bugzilla/docs/en/html/index.html">The Bugzilla Guide</A>
</UL>

<P><h2>Other Issue Features</h2>

<UL>
<!--
<script language="JavaScript" type="text/javascript">
if (username!='guest') {
document.write('<li><a href="https://netbeans.org/bugzilla/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1='+username+'&emailassigned_to2=1&emailreporter2=1&emailqa_contact2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Importance&field0-0-0=noop&type0-0-0=noop&value0-0-0=">My Issues</a> ');
document.write('<span class="articledate" style="margin-left:0px">(' + username + ')</span>');
}
</script>
//-->

<!-- Short term workaround: staticisation means above JS does not work.
Until we unstaticise, always show this My Issues link -->

<li><a href="http://services.netbeans.org/dashboard/web">Bug Dashboard</a>
<script language="JavaScript" type="text/javascript">
if (username!='guest') {
 document.write('<li><a href="https://netbeans.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailreporter1=1&emailtype1=exact&email1='+username+'%40netbeans.org&field0-0-0=bug_status&type0-0-0=notequals&value0-0-0=UNCONFIRMED&field0-0-1=reporter&type0-0-1=equals&value0-0-1='+username+'%40netbeans.org">My Issues</a>');
}
</script>
<P>
<li><B>Jump to Issue #:</B> 
    <FORM ACTION="https://netbeans.org/bugzilla/show_bug.cgi" METHOD="GET">
    <INPUT TYPE="TEXT" NAME="id" SIZE="7">&nbsp;&nbsp;<INPUT TYPE="image" BORDER="0" VALIGN="middle" SRC="../images_www/v4/btn_go.gif" width="34" height="15"  ALT="Jump to Issue">
    <BR>If you know the number of the issue you are looking for, use the form
    above to jump directly to it.
    </FORM>
</li>

<LI><B>For website, source code repository, or mailing list problems</B> 
    file an issue against the
    <A HREF="https://netbeans.org/bugzilla/enter_bug.cgi?product=www">www</A> project.
<P></LI>

</UL>

<h2>About the Issue Tracking System</h2>
<p>
The NetBeans open source project is using <A HREF="http://www.bugzilla.org/">Bugzilla</A>,
to track bugs and enhancement requests.  Bugzilla is an open source bug
tracking system developed and used by <A HREF="http://www.mozilla.org/">Mozilla</A>.
You can use Bugzilla to browse existing bugs, enter new bugs, or
modify the details of an existing bug.
</p>
</body>
</html>
