|
Lines 41-57
Link Here
|
| 41 |
<section> |
41 |
<section> |
| 42 |
<title>Introduction</title> |
42 |
<title>Introduction</title> |
| 43 |
|
43 |
|
| 44 |
<para>Gnats is a defect management (bug reporting) system used by |
44 |
<para>GNATS is a defect management (bug reporting) system used by |
| 45 |
the FreeBSD Project. As accurate tracking of outstanding |
45 |
the FreeBSD Project. As accurate tracking of outstanding |
| 46 |
software defects is important to the quality process, the |
46 |
software defects is important to FreeBSD's quality, the |
| 47 |
correct use of Gnats is essential to the forward progress of the |
47 |
correct use of GNATS is essential to the forward progress of the |
| 48 |
Project.</para> |
48 |
Project.</para> |
| 49 |
|
49 |
|
| 50 |
<para>Access to Gnats is provided to FreeBSD developers as well as |
50 |
<para>Access to GNATS is available to FreeBSD developers, as well as |
| 51 |
to the wider community. In order to maintain consistency within |
51 |
to the wider community. In order to maintain consistency within |
| 52 |
the database and provide a uniform user experience, guidelines |
52 |
the database and provide a consistent user experience, guidelines |
| 53 |
have been established covering common aspects of bug management |
53 |
have been established covering common aspects of bug management |
| 54 |
such as presenting followup, handling close requests and so |
54 |
such as presenting followup, handling close requests, and so |
| 55 |
forth.</para> |
55 |
forth.</para> |
| 56 |
</section> |
56 |
</section> |
| 57 |
|
57 |
|
|
Lines 60-73
Link Here
|
| 60 |
|
60 |
|
| 61 |
<itemizedlist> |
61 |
<itemizedlist> |
| 62 |
<listitem> |
62 |
<listitem> |
| 63 |
<para>The originator submits a PR and receives a confirmation |
63 |
<para>The Reporter submits a PR and receives a confirmation |
| 64 |
message.</para> |
64 |
message, most likely via &man.send-pr.1; or the Problem Report web form at <ulink url="http://www.FreeBSD.org/send-pr.html">http://www.FreeBSD.org/send-pr.html</ulink>.</para> |
| 65 |
</listitem> |
65 |
</listitem> |
| 66 |
|
66 |
|
| 67 |
<listitem> |
67 |
<listitem> |
| 68 |
<para>Joe Random Committer takes interest in the PR and |
68 |
<para>Joe Random Committer takes interest in the PR and |
| 69 |
assigns it to himself, or Jane Random BugBuster decides that |
69 |
assigns it to himself, or Jane Random BugBuster decides that |
| 70 |
Joe is the best suited to handle it and assigns it to |
70 |
Joe is best suited to handle it and assigns it to |
| 71 |
him.</para> |
71 |
him.</para> |
| 72 |
</listitem> |
72 |
</listitem> |
| 73 |
|
73 |
|
|
Lines 112-118
Link Here
|
| 112 |
<note> |
112 |
<note> |
| 113 |
<para>Many PRs are submitted with very little information about |
113 |
<para>Many PRs are submitted with very little information about |
| 114 |
the problem, and some are either very complex to solve, or |
114 |
the problem, and some are either very complex to solve, or |
| 115 |
just scratch the surface of a big problem; in these cases, it |
115 |
just scratch the surface of a larger problem; in these cases, it |
| 116 |
is very important to obtain all the necessary information |
116 |
is very important to obtain all the necessary information |
| 117 |
needed to solve the problem. If the problem contained within |
117 |
needed to solve the problem. If the problem contained within |
| 118 |
cannot be solved, or has occurred again, it is necessary to |
118 |
cannot be solved, or has occurred again, it is necessary to |
|
Lines 124-146
Link Here
|
| 124 |
usual and ask the originator (in the followup) to provide a |
124 |
usual and ask the originator (in the followup) to provide a |
| 125 |
working email address. This is normally the case when |
125 |
working email address. This is normally the case when |
| 126 |
&man.send-pr.1; is used from a system with the mail system |
126 |
&man.send-pr.1; is used from a system with the mail system |
| 127 |
disabled / not installed.</para> |
127 |
disabled or not installed.</para> |
| 128 |
</note> |
128 |
</note> |
| 129 |
</section> |
129 |
</section> |
| 130 |
|
130 |
|
| 131 |
<section> |
131 |
<section> |
| 132 |
<title>Problem Report State</title> |
132 |
<title>Problem Report State</title> |
| 133 |
|
133 |
|
| 134 |
<para>It is important to update the state of a PR when some |
134 |
<para>It is important to update the state of a PR when certain |
| 135 |
actions are taken. The state should accurately reflect the |
135 |
actions are taken. The state should accurately reflect the |
| 136 |
current state of work on the PR.</para> |
136 |
current state of work on the PR.</para> |
| 137 |
|
137 |
|
| 138 |
<example> |
138 |
<example> |
| 139 |
<title>A small example on when to change a state</title> |
139 |
<title>A small example on when to change PR state</title> |
| 140 |
|
140 |
|
| 141 |
<para>When a PR has been worked on and the developer(s) |
141 |
<para>When a PR has been worked on and the developer(s) |
| 142 |
responsible feel comfortable about the fix, they will submit a |
142 |
responsible feel comfortable about the fix, they will submit a |
| 143 |
followup to the PR and change the state to |
143 |
followup to the PR and change its state to |
| 144 |
<quote>feedback</quote>. At this point, the originator should |
144 |
<quote>feedback</quote>. At this point, the originator should |
| 145 |
evaluate the fix in their context and respond indicating |
145 |
evaluate the fix in their context and respond indicating |
| 146 |
whether the defect has indeed been remedied.</para> |
146 |
whether the defect has indeed been remedied.</para> |
|
Lines 178-185
Link Here
|
| 178 |
<glossentry> |
178 |
<glossentry> |
| 179 |
<glossterm>patched</glossterm> |
179 |
<glossterm>patched</glossterm> |
| 180 |
<glossdef> |
180 |
<glossdef> |
| 181 |
<para>A patch has been committed, but some issues (MFC, or |
181 |
<para>A patch has been committed, but something (MFC, or |
| 182 |
maybe confirmation from originator) are still open.</para> |
182 |
maybe confirmation from originator) is still pending.</para> |
| 183 |
</glossdef> |
183 |
</glossdef> |
| 184 |
</glossentry> |
184 |
</glossentry> |
| 185 |
|
185 |
|
|
Lines 190-198
Link Here
|
| 190 |
information or resources. This is a prime candidate for |
190 |
information or resources. This is a prime candidate for |
| 191 |
somebody who is looking for a project to take on. If the |
191 |
somebody who is looking for a project to take on. If the |
| 192 |
problem cannot be solved at all, it will be closed, rather |
192 |
problem cannot be solved at all, it will be closed, rather |
| 193 |
than suspended. The documentation project use |
193 |
than suspended. The documentation project uses |
| 194 |
<quote>suspended</quote> for <quote>wish-list</quote> |
194 |
<quote>suspended</quote> for <quote>wish-list</quote> |
| 195 |
items that entail a significant amount of work that no one |
195 |
items that entail a significant amount of work which no one |
| 196 |
currently has time for.</para> |
196 |
currently has time for.</para> |
| 197 |
</glossdef> |
197 |
</glossdef> |
| 198 |
</glossentry> |
198 |
</glossentry> |
|
Lines 209-217
Link Here
|
| 209 |
|
209 |
|
| 210 |
<note> |
210 |
<note> |
| 211 |
<para>The <quote>patched</quote> state is directly related to |
211 |
<para>The <quote>patched</quote> state is directly related to |
| 212 |
feedback, in that you may go directly change to this state if |
212 |
feedback, so you may go directly to <quote>closed</quote> state if |
| 213 |
the originator cannot test the patch, given that it |
213 |
the originator cannot test the patch, and it works in your own testing.</para> |
| 214 |
works.</para> |
|
|
| 215 |
</note> |
214 |
</note> |
| 216 |
</section> |
215 |
</section> |
| 217 |
|
216 |
|
|
Lines 230-236
Link Here
|
| 230 |
assignee. If you have comments, submit a followup. If for |
229 |
assignee. If you have comments, submit a followup. If for |
| 231 |
some reason you think the PR should change state or be |
230 |
some reason you think the PR should change state or be |
| 232 |
reassigned, send a message to the assignee. If the assignee |
231 |
reassigned, send a message to the assignee. If the assignee |
| 233 |
does not respond within two weeks, unassign the PR and do as |
232 |
does not respond within two weeks, unassign or reassign the PR and do as |
| 234 |
you please.</para> |
233 |
you please.</para> |
| 235 |
</section> |
234 |
</section> |
| 236 |
|
235 |
|
|
Lines 241-262
Link Here
|
| 241 |
choose the one that contains the largest amount of useful |
240 |
choose the one that contains the largest amount of useful |
| 242 |
information and close the others, stating clearly the number |
241 |
information and close the others, stating clearly the number |
| 243 |
of the superseding PR. If several PRs contain non-overlapping |
242 |
of the superseding PR. If several PRs contain non-overlapping |
| 244 |
useful information, submit whatever is missing from the one |
243 |
useful information, submit all the missing information to one |
| 245 |
you keep open in a followup, with references to the PRs you |
244 |
in a followup, including references to the others; then close the other PRs (which are now completely superseded).</para> |
| 246 |
close.</para> |
|
|
| 247 |
</section> |
245 |
</section> |
| 248 |
|
246 |
|
| 249 |
<section> |
247 |
<section> |
| 250 |
<title>Stale PRs</title> |
248 |
<title>Stale PRs</title> |
| 251 |
|
249 |
|
| 252 |
<para>A PR is considered stale if it hasn't been modified in |
250 |
<para>A PR is considered stale if it hasn't been modified in |
| 253 |
more than six months. Apply the following procedure:</para> |
251 |
more than six months. Apply the following procedure to deal with stale PRs:</para> |
| 254 |
|
252 |
|
| 255 |
<itemizedlist> |
253 |
<itemizedlist> |
| 256 |
<listitem> |
254 |
<listitem> |
| 257 |
<para>If the PR contains sufficient detail, try to reproduce |
255 |
<para>If the PR contains sufficient detail, try to reproduce |
| 258 |
the problem in <literal>-CURRENT</literal> and |
256 |
the problem in <literal>-CURRENT</literal> and |
| 259 |
<literal>-STABLE</literal>. if you succeed, submit a |
257 |
<literal>-STABLE</literal>. If you succeed, submit a |
| 260 |
followup detailing your findings and try to find someone |
258 |
followup detailing your findings and try to find someone |
| 261 |
to assign it to. Set the state to <quote>analyzed</quote> |
259 |
to assign it to. Set the state to <quote>analyzed</quote> |
| 262 |
if appropriate.</para> |
260 |
if appropriate.</para> |
|
Lines 281-298
Link Here
|
| 281 |
<listitem> |
279 |
<listitem> |
| 282 |
<para>If the PR describes an error which you know has been |
280 |
<para>If the PR describes an error which you know has been |
| 283 |
corrected in <literal>-CURRENT</literal>, but not in |
281 |
corrected in <literal>-CURRENT</literal>, but not in |
| 284 |
<literal>-STABLE</literal>, try to find out if the person |
282 |
<literal>-STABLE</literal>, try to find out when the person |
| 285 |
who corrected is planning to MFC it, or try to find |
283 |
who corrected it is planning to MFC it, or try to find |
| 286 |
someone else (maybe yourself?) to do it. Set the state to |
284 |
someone else (maybe yourself?) to do it. Set the state to |
| 287 |
<quote>feedback</quote> and assign it to whomever will do |
285 |
<quote>feedback</quote> and assign it to whomever will do |
| 288 |
the MFC.</para> |
286 |
the MFC.</para> |
| 289 |
</listitem> |
287 |
</listitem> |
| 290 |
|
288 |
|
| 291 |
<listitem> |
289 |
<listitem> |
| 292 |
<para>In all other cases, ask the originator to confirm if |
290 |
<para>In other cases, ask the originator to confirm if |
| 293 |
the problem still exists in newer versions. If the |
291 |
the problem still exists in newer versions. If the |
| 294 |
originator does not reply within a month, close the PR |
292 |
originator does not reply within a month, close the PR |
| 295 |
with the mention <quote>Feedback timeout</quote>.</para> |
293 |
with the notation <quote>Feedback timeout</quote>.</para> |
| 296 |
</listitem> |
294 |
</listitem> |
| 297 |
</itemizedlist> |
295 |
</itemizedlist> |
| 298 |
</section> |
296 |
</section> |