blob: 378dbed1e4e799b4406be76224876f12810cc21d [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><!-- -*- xhtml -*- -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>3.4 High Resistance Mode</title>
<link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css"/>
<meta name="TOPIC" content="NB_ORG"/>
<meta name="TYPE" content="ARTICLE"/>
<meta name="AUDIENCE" content="NBDEVELOPER"/>
<meta name="DESCRIPTION" content="Guidelines for NetBeans 3.4 high-resistance bug fixing mode."/>
<meta name="AUTHOR" content="Jesse Glick"/>
<meta name="INDEXED" content="Y"/>
</head>
<body>
<h1>3.4 High Resistance Mode</h1>
<dl>
<dt><em>Version:</em></dt>
<dd><!-- hhmts start -->April 24, 2003<!-- hhmts end --></dd>
<dt><em>Author:</em></dt>
<dd>Jesse Glick</dd>
</dl>
<p>
We need guidelines for developers and QA for how to control bug fixing during
the high-resistance stabilization cycle for the <a href="index.html">NetBeans
3.4 release</a>. This document, based on conversations on
<code>nbdev@netbeans.org</code> (subjects: <samp>[Proposal] NB 3.4 high
resistance mode rules</samp> and <samp>Bug Waiver Process for NB 3.4</samp>),
offers these guidelines.
</p>
<p>
Release coordinators for future releases are encouraged to copy and adapt this
document for their own releases.
</p>
<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
<a
href="mailto:reviewers-subscribe@netbeans.org"><code>reviewers@netbeans.org</code></a>
immediately. 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 (branch cut) on July 10 2002, all proposed
patches must be preannounced on <code>reviewers@netbeans.org</code>.
</p>
<p>
Only bug fixes are permitted. All P1 and P2 bugs ought to be fixed unless
there is a compelling reason not to. P3, P4, and P5 bugs can be fixed if
they are trivial - safe and uncontroversial.
</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 trunk; 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 <a
href="../../guidelines/code-conventions.html">NetBeans
code conventions</a> are especially important for high-resistance patches.
In particular, please avoid including gratuitous whitespace-only changes in
the diff. Other developers will have to read these diff lines and will waste
time trying to see what you changed!
</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>
Handy links to help you do good reviews:
Seamonkey
Code Reviewer's Guide and <a
href="http://www.mozilla.org/hacking/reviewers.html">Mozilla
"super-review"</a>.
</p>
<p>
Objections <em>must</em> be recorded in the Issuezilla bug report,
<em>not</em> sent back to <code>reviewers@netbeans.org</code> (where even
the submitter might not see it!).
</p>
<p>
Big arguments can spill over to <code>nbdev@netbeans.org</code> if
necessary.
</p>
</li>
<li>
<p>
If no objections have been raised after 24 hours, and the patch has been
reviewed, 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>4.0</code>. If a bug is fixed in the <code>release34</code> branch as
well, the target milestone should be set to <code>3.4</code>.
</p>
</li>
<li>
<p>
After RC1 on July 24 2002, any necessary fixes must be discussed in detail
on <code>nbdev@netbeans.org</code>. The documentation team can make
localized, HTML-only docs changes, if they are carefully sanity-checked in
advance, but must keep <code>nbdev@netbeans.org</code> informed of when
these changes are planned and committed.
</p>
</li>
</ol>
<p>
If you have fixes you do not intend to apply to 3.4, but might be useful in an
update, you can mark them with the <code>3.4.1_CANDIDATE</code> keyword to
help track them. Please try to fix such bugs in the trunk as soon as possible.
If we do in fact make a 3.4.1 release, it will be easy to find what fixes are
suggested.
</p>
<h2>3.4 Waivers</h2>
<p>
As a general rule, an honest effort should be made to fix all P1 and P2 bugs
(<code>DEFECT</code>s) in released modules. After the release candidate,
however, some bugs may be seen as too dangerous or difficult to fix for the
3.4 release. In this case you can apply for a waiver:
</p>
<ol>
<li>
<p>
Mark the bug report in Issuezilla with the keyword <code>3.4_WAIVER</code>.
</p>
</li>
<li>
<p>
Provide a complete justification for the waiver request in the Issuezilla
description. Some typical justifications:
</p>
<ul>
<li>
<p>
The bug fix might have unintentional side-effects worse than the original
bug; describe why you think this might be so.
</p>
</li>
<li>
<p>
Any possible fix would be a significant develoopment effort and you (as
module owner) just do not have the time to do it; someone else could still
volunteer however.
</p>
</li>
<li>
<p>
The bug is hard or impossible to reproduce and given current information
you are unable to fix it for this reason, or unable to verify that a
possible fix really worked. Describe what information or test cases you
would still like to see.
</p>
</li>
</ul>
</li>
<li>
<p>
Send a message to <code>reviewers@netbeans.org</code> stating that you are
requesting a waiver. Include a hyperlink to the issue report for
convenience.
</p>
</li>
<li>
<p>
Reviewers may discuss technicalities by adding Issuezilla comments (and
adding themselves as CCs if necessary). Serious arguments can spill over
onto <code>nbdev@netbeans.org</code>.
</p>
</li>
<li>
<p>
If no strong objections are received within three days (72 hours) of
announcing the waiver request, it is considered approved automatically. It
is not necessary for anyone to explicitly approve they waiver, although
people may add informational comments that they think it is a good idea to
waive the bug. If there are serious objections, they must be addressed
somehow, or the bug reconsidered for fixing.
</p>
</li>
<li>
<p>
You may want to post a followup to <code>nbdev@netbeans.org</code> after
three days reminding people that the issue will not be fixed for 3.4.
</p>
</li>
<li>
<p>
Consider marking the issue <code>3.4.1_CANDIDATE</code>, however, if you
feel it might still be fixable in an update release.
</p>
</li>
<li>
<p>
Also consider adding the keyword <code>RELNOTE</code>, CCing the release
coordinator at a minimum, and writing (in the issue) a summary of the bug
and any workarounds you would like to see included in the 3.4 release notes.
</p>
</li>
</ol>
<h2>Unofficial Modules</h2>
<p>
Only bugs in modules intended to be released as part of the official 3.4 build
are automatically affected by high-resistance commit rules. However, if you
have a module which you would like to release in stable form for 3.4, you (the
module owner) are responsible for creating a <code>release34</code> branch in
your module's sources.
</p>
<p>
You should then follow the high-resistance process as usual. However, the
cutoff date is yours to determine: when you are satisfied that all important
fixes have been made, and there is some independent assurance (e.g. from
Quality Assurance engineers) that your module is stable and usable, you can
push it on the Auto Update server - possibly after the main 3.4 release has
been published.
</p>
<p>
Waivers are not necessary for bugs not in the standard distribution of 3.4. As
module owner you must decide when, if ever, the module is stable enough to be
released on Auto Update.
</p>
</body>
</html>