<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">

<title>NetBeans 5.5 High Resistance Mode</title> 
  <meta name="TOPIC" content="NB_ORG"/>
  <meta name="TYPE" content="ARTICLE"/>
  <meta name="AUDIENCE" content="NBDEVELOPER"/>
  <meta name="DESCRIPTION" content="Guidelines for NetBeans 5.5 high-resistance bug fixing mode."/>
  <meta name="AUTHOR" content="Jesse Glick"/>
  <meta name="AUTHOR" content="Jan Chalupa"/>
  <meta name="AUTHOR" content="Jiri Kovalsky"/>
  <meta name="INDEXED" content="Y"/>
<link rel="stylesheet" type="text/css" href="/netbeans.css" media="screen">
</head>
<body>
<h1>NetBeans 5.5 High Resistance Mode</h1>
  <dl>
   <dt><em>Version:</em></dt>
   <dd><!-- hhmts start -->September 13, 2006<!-- hhmts end --></dd>
   <dt><em>Authors:</em></dt>
   <dd>Jesse Glick, Jan Chalupa, Trung Duc Tran, Jiri Kovalsky</dd>
  </dl>

  <h2>High Resistance</h2>
  <p>
   To fix bugs during high resistance mode requires some special steps.
  </p>

  <ol>
   <li>
    <p>
     All developers with any experience are strongly encouraged to subscribe to
     <code><script language="JavaScript" type="text/javascript">
<!--
var user = "&#114;&#101;&#118;&#105;&#101;&#119;&#101;&#114;&#115;&#45;&#115;&#117;&#98;&#115;&#99;&#114;&#105;&#98;&#101;";
var domain = "&#110;&#101;&#116;&#98;&#101;&#97;&#110;&#115;&#46;&#111;&#114;&#103;";
var at = "&#x40;";
document.write('<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;' + user + at + domain + '">&#114;&#101;&#118;&#105;&#101;&#119;&#101;&#114;&#115;&#64;&#110;&#101;&#116;&#98;&#101;&#97;&#110;&#115;&#46;&#111;&#114;&#103;</a>');
//-->
</script>
<noscript>
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#101;&#118;&#105;&#101;&#119;&#101;&#114;&#115;&#45;&#115;&#117;&#98;&#115;&#99;&#114;&#105;&#98;&#101;&#x40;&#110;&#101;&#116;&#98;&#101;&#97;&#110;&#115;&#46;&#111;&#114;&#103;">&#114;&#101;&#118;&#105;&#101;&#119;&#101;&#114;&#115;&#64;&#110;&#101;&#116;&#98;&#101;&#97;&#110;&#115;&#46;&#111;&#114;&#103;</a>
</noscript>
</code>
     There is also <a
     href="nntp://news.gmane.org/gmane.comp.java.netbeans.reviewers">NNTP access</a>. Archives
     are <a
     href="https://netbeans.org/projects/www/lists/reviewers/archive">here</a>.
    </p>
   </li>
   <li>
    <p>
     After high resistance begins on September 13, 2006, all proposed patches
       must be preannounced on <code><script language="JavaScript" type="text/javascript"><!--
var user = "&#114;&#101;&#118;&#105;&#101;&#119;&#101;&#114;&#115;";
var domain = "&#110;&#101;&#116;&#98;&#101;&#97;&#110;&#115;&#46;&#111;&#114;&#103;";
var at = "&#x40;";
document.write(user + at + domain);
//--></script><noscript>
&#114;&#101;&#118;&#105;&#101;&#119;&#101;&#114;&#115;
&#x40;
&#110;&#101;&#116;&#98;&#101;&#97;&#110;&#115;&#46;&#111;&#114;&#103;
</noscript></code>.
    </p>
    <p>
     Only high priority bug fixes are permitted. All P1 and P2 bugs ought to be
       fixed unless there is a compelling reason not to.
    </p>
    <p>
     Non-structural (HTML-only) documentation fixes can be made without being
     pre-announced. Minor bundle fixes (spelling errors etc., but not major text
     changes in the GUI) can be made without discussion as well.
    </p>
   </li>
   <li>
    <p>
     The message to this alias should include the issue number (in a hyperlink),
     a subject line summarizing the bug or patch, and a sentence or two
     describing the proposed patch - enough for someone to guess whether he or
     she is interested in the details.
    </p>
    <p>
     The Issuezilla report must be fixed in the release55_dev branch; have a full <samp>cvs diff
      -c</samp>/<samp>-u</samp> patch for review (you may link to an already-committed
     patch using CVSweb); full description of the bug and why it is important enough
     to fix; information on testing and safety; etc.
    </p>
    <p>
     The issue <em>must</em> be marked with the <code>55_HR_FIX</code> keyword.
    </p>
   </li>
   <li>
    <p>
     The developer to whom the issue is assigned, is responsible for getting a
     review from at least one other developer somehow. The other developer should
     add a note to the issue when he/she has reviewed it confirming that the
     patch looks OK.
    </p>
    <p>
     Objections <em>must</em> be recorded in the Issuezilla bug report,
     <em>not</em> sent back to <code><script language="JavaScript" type="text/javascript"><!--
var user = "&#114;&#101;&#118;&#105;&#101;&#119;&#101;&#114;&#115;";
var domain = "&#110;&#101;&#116;&#98;&#101;&#97;&#110;&#115;&#46;&#111;&#114;&#103;";
var at = "&#x40;";
document.write(user + at + domain);
//--></script><noscript>
&#114;&#101;&#118;&#105;&#101;&#119;&#101;&#114;&#115;
&#x40;
&#110;&#101;&#116;&#98;&#101;&#97;&#110;&#115;&#46;&#111;&#114;&#103;
</noscript></code> (where even
     the submitter might not see it!).
    </p>
   </li>
   <li>
    <p>
     If no objections have been raised after 24 hours, and the patch has been
     reviewed by another developer and verified by QA in the release55_dev branch,
     the developer is free to integrate the patch.
    </p>
   </li>
   <li>
    <p>
     A bug fixed only in the trunk should have the target milestone set to
     <code>dev</code>. If a bug is fixed in the <code>release55</code> branch as
     well, the target milestone should be set to <code>5.5</code>.
    </p>
   </li>
   <li>
    <p>
    All P3 bug reports must be evaluated promptly to make sure there are no P1,
    P2 bugs hidden among them.  P3 bugs will not be fixed in
    <code>release55</code> branch.  If a P3 bug is considered important enough, then
    its priority must be adjusted accordingly, ie raised to P2 or P1 before the
    fix can get into <code>release55</code> branch.
    </p>
   </li>
  </ol>

  <u>Note:</u> For NetBeans 5.5, only Web Apps and J2EE support are being actively
developed. P2 bugs in non-J2EE areas must be evaluated, but are not required to be
fixed unless considered showstoppers for the release.<br/><br/>
</body>
