coar 98/08/03 07:48:28
Modified: . index.html
Added: . bugdb-policies.html
Log:
Add a rough draft of 'how to edit PRs,' and point to it.
Revision Changes Path
1.24 +6 -2 apache-devsite/index.html
Index: index.html
===================================================================
RCS file: /export/home/cvs/apache-devsite/index.html,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- index.html 1998/06/19 15:26:54 1.23
+++ index.html 1998/08/03 14:48:27 1.24
@@ -25,12 +25,16 @@
<H2>User Feedback</H2>
<UL TYPE="SQUARE">
<LI><A HREF="http://bugs.apache.org/">User access</A> (submit and query)
- to the Apache Bug Report Database.
+ to the Apache Bug Report Database.
</LI>
<LI><A HREF="http://bugs.apache.org/private/">Developer access</A>
(submit, query and edit) to the
database of Apache bug reports.
Requires authorisation.
+ <MENU>
+ <LI><A HREF="bugdb-policies.html">Guidelines</A> for editing PRs.
+ </LI>
+ </MENU>
</LI>
<LI>Information about the various Apache
<A HREF="mailing-lists.html">mailing lists</A>.
@@ -62,7 +66,7 @@
</LI>
<LI>Some notes on <A HREF="debugging.html">debugging</A>
<BR>
- (last modified on <!--#flastmod virtual="debugging.html" -->)
+ (last modified on <!--#flastmod virtual="debugging.html" -->)
</LI>
</UL>
1.1 apache-devsite/bugdb-policies.html
Index: bugdb-policies.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>Apache Bug Database Policies for Developers
</TITLE>
</HEAD>
<!-- Background white, links blue (unvisited), navy (visited), red (active)
-->
<BODY
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#000080"
ALINK="#FF0000"
>
<!--#include virtual="header.html" -->
<H1 ALIGN="CENTER">Apache Bug Database Policies for Developers
</H1>
<P>
This document defines the rules and policies that govern the handling
of Apache problem reports (PRs).
</P>
<MENU>
<LI><A HREF="#principles">Underlying Principles</A>
</LI>
<LI><A HREF="#guidelines">General Guidelines</A>
</LI>
<LI><A HREF="#states">PR States</A>
<MENU>
<LI><A HREF="#open">open</A>
</LI>
<LI><A HREF="#analyzed">analyzed</A>
</LI>
<LI><A HREF="#feedback">feedback</A>
</LI>
<LI><A HREF="#suspended">suspended</A>
</LI>
<LI><A HREF="#closed">closed</A>
</LI>
<LI><A HREF="#transitions">PR State Transitions</A>
</LI>
</MENU>
</LI>
<LI><A HREF="#dates">Date Thresholds</A>
</LI>
<LI><A HREF="#outofband">Out-of-Band PR Information</A>
</LI>
</MENU>
<HR>
<H2><A NAME="principles">Underlying Principles</A>
</H2>
<P>
The single most critical resource we have is developer time. Anything
that can be done to reduce the amount of time developer's spend in
dealing with PRs, as opposed to actually developing or fixing problems,
is highly desirable. This means that it is reasonable to push back
on PR submitters to test fixes in their own environments rather than
have developers reproduce the environment locally. If a newer version
of the software has been released, it is reasonable to ask the submitter
to try upgrading -- even if it's not clear whether the relevant areas
of the code were touched. Submitters should almost <EM>always</EM>
be encouraged to run the latest version, at least to test whether
their issues have been addressed.
</P>
<P>
Obviously this is subject to case-by-case exceptions at the discretion
of individual developers, but the principle remains the basis for the
policies that follow.
</P>
<HR>
<H2><A NAME="guidelines">General Guidelines</A></H2>
<P>
Some general guidelines for developers working on problem reports:
</P>
<UL>
<LI><STRONG>Before working on a PR, check to see if anyone else has touched
it recently.</STRONG>
If so, contact the other developer first, since there may be
some out-of-band communication going on in private email and your
jumping in may confuse matters.
</LI>
<LI><STRONG>Don't change the ownership of PRs to yourself unless you intend
to <EM>really</EM> follow through unto closure.</STRONG>
The bugdb sends mail whenever PRs are modified; if the owner is
"<SAMP>apache</SAMP>" the mail will be sent to the
<SAMP><[EMAIL PROTECTED]></SAMP>
mailing list. If the owner is anyone else, mail is sent only to
the submitter and that person -- so change notices <STRONG>won't</STRONG>
be sent to the group.
</LI>
<LI><STRONG>Be sure to update a PR's state when mail from the submitter
gets attached to it.</STRONG>
When the bugdb system attaches mail messages, it doesn't change the
state or make any other changes to a PR. Since mail has been sent,
"feedback" is almost certainly not the correct state, so it
should be changed. See the <A HREF="#transitions">state transitions</A>
section for more information about the correct new state.
</LI>
</UL>
<HR>
<H2><A NAME="states">PR States</A>
</H2>
<P>
A problem report can be in any of the following states. The ones in which
most PRs should reside are: <STRONG>open</STRONG>,
<STRONG>feedback</STRONG>,
and <STRONG>closed</STRONG>. The "open" state implies that a PR needs
developer attention, so one of the main goals is to move PRs into
"feedback,"
"suspended," or "closed."
</P>
<H3><A NAME="open">open</A></H3>
<P>
New PRs start in this state. Being "open" indicates that a solution
is not yet known, or that no-one has looked at the problem yet. It
can also mean that someone was working on it but had to stop.
</P>
<H3><A NAME="analyzed">analyzed</A></H3>
<P>
If a PR is in the "analyzed" state, it means that someone has figured
out the cause of the issue (or thinks he has). A solution may or may
not have been found, but it hasn't been committed to a development stream
yet if it has. This is also the state into which a PR should be put
when requested feedback has been obtained from the submitter.
</P>
<H3><A NAME="feedback">feedback</A></H3>
<P>
The "feedback" state is where a lot of PRs spend their time. It indicates
that the submitter has been asked for more information or to try an
experiment. It will stay in this state until a response is made or the
PR 'times out' (see the section on <A HREF="#dates">date thresholds</A>).
</P>
<H3><A NAME="suspended">suspended</A></H3>
<P>
Simply put, reports that ask for new functionality or other changes that no
developer wants to work on at the moment, or that have been identified as
'non-goals' for the current development streams, get put into "suspended"
state as a means of saving them for later consideration.
</P>
<H3><A NAME="closed">closed</A></H3>
<P>
Closed PRs typically require no additional attention. It is possible,
though, for reports to be closed incorrectly or prematurely, so they
<EM>may</EM> occasionally migrate out of this state. Closed PRs are
the major component of the knowledge base distilled into the FAQ.
</P>
<HR>
<H3><A NAME="transitions">PR State Transitions</A></H3>
<P>
The following table describes the possible state transitions to which PRs
are subject, and explains some of the circumstances that can cause a
particular transition to be made. If you're not sure what the new
state should be for a PR you're handling, consult the table for some
guidelines.
</P>
<TABLE BORDER=1>
<TR VALIGN=BOTTOM ALIGN=CENTER>
<TD></TD>
<TH>open</TH>
<TH>analyzed</TH>
<TH>feedback</TH>
<TH>suspended</TH>
<TH>closed</TH>
</TR>
<TR VALIGN=TOP>
<TH VALIGN=CENTER>open</TH>
<TD><!-- open-open -->
</TD>
<TD><!-- open-analyzed -->
Either the submitter or a responding developer has determined what the
problem cause is.
</TD>
<TD><!-- open-feedback -->
A question has been posed to the submitter, such as asking for more
detail or requesting an experiment.
</TD>
<TD><!-- open-suspended -->
The PR describes a request for a change or functionality that is
reasonable or interesting, but isn't appropriate to the current
version under development, or to the current plans or work effort
available.
</TD>
<TD><!-- open-closed -->
The PR deals with a non-issue, one that has already been solved, or is
already being tracked. Or almost any case in which further attention
is inappropriate.
</TD>
</TR>
<TR VALIGN=TOP>
<TH VALIGN=CENTER>analyzed</TH>
<TD><!-- analyzed-open -->
It turns out that the analysis was incorrect and the cause really isn't
known after all.
</TD>
<TD><!-- analyzed-analyzed -->
</TD>
<TD><!-- analyzed-feedback -->
The submitter is being asked for more information or experimentation.
</TD>
<TD><!-- analyzed-suspended -->
The issue described by the PR should be deferred until some later
version.
</TD>
<TD><!-- analyzed-closed -->
The decision has been made to <STRONG>not</STRONG> address the PR,
possibly because the behaviour is not considered a bug. This usually
follows discussion amongst the developers.
</TD>
</TR>
<TR VALIGN=TOP>
<TH VALIGN=CENTER>feedback</TH>
<TD><!-- feedback-open -->
The requested information has been supplied by the submitter, but
doesn't really explain the behaviour. (It may be more appropriate to
move the PR to "analyzed" instead.)
</TD>
<TD><!-- feedback-analyzed -->
The response from the submitter has provided the necessary information
to determine the cause, if not the solution, of the issue.
</TD>
<TD><!-- feedback-feedback -->
</TD>
<TD><!-- feedback-suspended -->
Additional information from the submitter allows the determination to
be made that the issue should be addressed in some future version.
</TD>
<TD><!-- feedback-closed -->
<MENU>
<LI>Additional information supplied by the submitter has explained the
cause, and the solution is provided in the closure text.
</LI>
<LI>The PR has '<A HREF="#dates">timed out</A>' due to lack of response
from the submitter.
</LI>
</MENU>
</TD>
</TR>
<TR VALIGN=TOP>
<TH VALIGN=CENTER>suspended</TH>
<TD><!-- suspended-open -->
<MENU>
<LI>The time has come for the issue described by the PR to be considered
for inclusion in the project.
</LI>
<LI>The PR describes a genuine bug rather than a change or enhancement.
It may be more appropriate to move the PR to "analyzed" instead.
</LI>
</MENU>
</TD>
<TD><!-- suspended-analyzed -->
<MENU>
<LI>The time has come for the issue described by the PR to be considered
for inclusion in the project.
</LI>
<LI>The issue described by the PR is a genuine bug or problem, and the
circumstances are tolerably well understood.
</LI>
</MENU>
</TD>
<TD><!-- suspended-feedback -->
The PR's issue wasn't clearly understood, and it really is a bug
report. More information from the submitter has been requested.
(This typically follows <A HREF="#outofband">out-of-band email</A>
exchanges between the submitter and a developer.)
</TD>
<TD><!-- suspended-suspended -->
</TD>
<TD><!-- suspended-closed -->
The issue was discussed by the developers, and the decision was made
to not invest in the necessary effort. The PR submitter can, and perhaps
should, be encouraged to develop the solution personally and supply it
to the project for possible inclusion.
</TD>
</TR>
<TR VALIGN=TOP>
<TH VALIGN=CENTER>closed</TH>
<TD><!-- closed-open -->
The report was closed prematurely, probably due to insufficient detail
in the PR or perhaps because the developer didn't understand the
issue as described. It may be more appropriate for the PR to have
been moved to "analyzed" or "feedback" instead.
</TD>
<TD><!-- closed-analyzed -->
The PR was closed prematurely, but the issue is now clarified and
understood -- though not yet solved.
</TD>
<TD><!-- closed-feedback -->
The PR was closed prematurely, but additional information has been
requested from the submitter to investigate further.
</TD>
<TD><!-- closed-suspended -->
After closure, additional information has been supplied to make a case
for
future consideration of the issue.
</TD>
<TD><!-- closed-closed -->
</TD>
</TR>
</TABLE>
<HR>
<H2><A NAME="dates">Date Thresholds</A>
</H2>
<P>
In keeping with the principle of minimising the amount of time spent
on bugdb administrivia, the following thresholds may be used as guidelines
for dealing with PRs that aren't being actively worked.
</P>
<DIV ALIGN=CENTER>
<TABLE BORDER=1>
<TR>
<TH>State</TH>
<TH>Time Since Last Touched</TH>
<TH>PR Last Touched By</TH>
<TH>PR Condition</TH>
<TH>Available Actions</TH>
</TR>
<TR ALIGN=CENTER VALIGN=TOP>
<TD>analyzed</TD>
<TD>>30 days</TD>
<TD>N/A</TD>
<TD>N/A</TD>
<TD ALIGN=LEFT>Edit the PR (without changing state unless appropriate) to
let submitter know the issue is not forgotten.
</TD>
</TR>
<TR ALIGN=CENTER VALIGN=TOP>
<TD ROWSPAN=2>feedback</TD>
<TD ROWSPAN=2>14-30 days</TD>
<TD ROWSPAN=2>Developer</TD>
<TD ALIGN=LEFT>Last touch was a developer request for information or
experimentation
</TD>
<TD ALIGN=LEFT>Click on the "Query -- Outstanding Request" button.</TD>
</TR>
<TR ALIGN=CENTER VALIGN=TOP>
<!-- Col 1 spanned from above -->
<!-- Col 2 spanned from above -->
<!-- Col 3 spanned from above -->
<TD ALIGN=LEFT>Last touch was the "Query -- Outstanding request"
message
</TD>
<TD ALIGN=LEFT>Click on the "Close -- No response" button to close
the PR.
</TD>
</TR>
</TABLE>
</DIV>
<HR>
<H2><A NAME="outofband">Out-of-Band PR Information</A>
</H2>
<P>
In many cases, mail pertaining to the original PR may be exchanged between
the submitter and one or more developers. In this case, the developer(s)
should make sure relevant portions are attached to the PR by forwarding
them to the <SAMP><[EMAIL PROTECTED]></SAMP> address with the
appropriate <SAMP>Subject:</SAMP> line.
</P>
<BLOCKQUOTE>
<STRONG>
If you mail information to the bugdb in order to attach it to an existing
PR, <EM>don't</EM> quote excessively! Remember that anyone reading the
PR will see all attachments in chronological order, and excessive
quoting not only takes up space unnecessarily, but also makes the
report harder to read.
</STRONG>
</BLOCKQUOTE>
<P>
When additional information is sent to the bugdb through email, do
<STRONG>not</STRONG> use MIME attachments or forwarding! The bugdb
is not MIME-aware, and so the attachments will probably look ugly.
</P>
<P>
"Out-of-band" also refers to information that gets attached to
PRs though the email mechanism rather than the Web form. When the
bugdb processes such messages, it <STRONG>does not</STRONG> change the
PR state, so it needs to be changed manually.
</P>
</BODY>
</HTML>