1 @c $FreeBSD: src/gnu/usr.bin/send-pr/doc/fields.texi,v 1.1.12.1 2001/03/05 10:44:04 kris Exp $
2 @c $DragonFly: src/gnu/usr.bin/send-pr/doc/Attic/fields.texi,v 1.2 2003/06/17 04:25:48 dillon Exp $
5 @section Problem Report format
6 @cindex Problem Report format
8 @cindex database similarities
11 The format of a PR is designed to reflect the nature of @sc{gnats} as a
12 database. Information is arranged into @dfn{fields}, and kept in
13 individual records (Problem Reports).
15 A Problem Report contains two different types of fields: @dfn{Mail
16 Header} fields, which are used by the mail handler for delivery, and
17 @dfn{Problem Report} fields, which contain information relevant to the
18 Problem Report and its submitter. A Problem Report is essentially a
19 specially formatted electronic mail message.
21 Problem Report fields are denoted by a keyword which begins with
22 @samp{>} and ends with @samp{:}, as in @samp{>Confidential:}. Fields
23 belong to one of three data types:
26 @cindex Problem Report data types
27 @cindex @emph{Enumerated} data types
29 One of a specific set of values, which vary according to the field. The
30 value for each keyword must be on the same line as the keyword. These
31 values are not configurable (yet).
34 For each @sc{Enumerated} keyword, the possible choices are listed in the
35 @code{send-pr} template as a comment.
37 The following fields are @sc{Enumerated} format; see the descriptions of
38 fields below for explanations of each field in detail:
42 >Confidential: >Severity: >Priority:
43 >Class: >State: >Number:
47 @cindex @emph{Text} data types
49 One single line of text which must begin and end on the same line (i.e.,
50 before a newline) as the keyword. See the descriptions of fields below
51 for explanations of each field in detail. The following fields are
56 >Submitter-Id: >Originator: >Synopsis:
57 >Category: >Release: >Responsible:
62 @cindex @emph{MultiText} data types
64 Text of any length may occur in this field. @sc{MultiText} may span
65 multiple lines and may also include blank lines. A @sc{MultiText} field
66 ends only when another keyword appears. See the descriptions of fields
67 below for explanations of each field in detail.
69 The following fields are @sc{MultiText} format:
73 >Organization: >Environment: >Description:
74 >How-To-Repeat: >Fix: >Audit-Trail:
82 @subheading Example Problem Report
85 The following is an example Problem Report. Mail headers are at the
86 top, followed by @sc{gnats} fields, which begin with @samp{>} and end
87 with @samp{:}. The @samp{Subject:} line in the mail header and the
88 @samp{>Synopsis:} field are usually duplicates of each other.
90 @cindex sample Problem Report
91 @cindex example Problem Report
92 @cindex Problem Report template
96 Message-Id: @var{message-id}
99 Reply-To: @var{address}
100 To: @var{bug-address}
101 Subject: @var{subject}
103 >Number: @var{gnats-id}
104 >Category: @var{category}
105 >Synopsis: @var{synopsis}
106 >Confidential: yes @emph{or} no
107 >Severity: critical, serious, @emph{or} non-critical
108 >Priority: high, medium @emph{or} low
109 >Responsible: @var{responsible}
110 >State: open, analyzed, suspended, feedback, @emph{or} closed
111 >Class: sw-bug, doc-bug, change-request, support,
116 duplicate, @emph{or} mistaken
118 >Submitter-Id: @var{submitter-id}
119 >Arrival-Date: @var{date}
120 >Originator: @var{name}
121 >Organization: @var{organization}
122 >Release: @var{release}
132 @var{appended-messages@dots{}}
133 State-Changed-From-To: @var{from}-@var{to}
134 State-Changed-When: @var{date}
137 Responsible-Changed-From-To: @var{from}-@var{to}
138 Responsible-Changed-When: @var{date}
139 Responsible-Changed-Why:
148 * Mail header fields::
149 * Problem Report fields::
152 @c ----------------------
153 @node Mail header fields
154 @subsection Mail header fields
155 @cindex mail header fields
156 @cindex Internet standard RFC-822
158 A Problem Report may contain any mail header field described in the
159 Internet standard RFC-822. However, only the fields which identify the
160 sender and the subject are required by @code{send-pr}:
163 @cindex @code{To:} header
165 The preconfigured mail address for the Support Site where the PR is to
166 be sent, automatically supplied by @code{send-pr}.
168 @cindex @code{Subject:} header
170 A terse description of the problem. This field normally contains the
171 same information as the @samp{>Synopsis:} field.
173 @cindex @code{From:} header
175 Usually supplied automatically by the originator's mailer; should
176 contain the originator's electronic mail address.
178 @cindex @code{Reply-To:} header
180 A return address to which electronic replies can be sent; in most cases,
181 the same address as the @code{From:} field.
185 @cindex @code{Received-By:} headers
186 One of the configurable options for @sc{gnats} is whether or not to
187 retain @w{@samp{Received-By:}} headers, which often consume a lot of
188 space and are not often used. @xref{Local configuration,,Changing your
189 local configuration}.
192 @c ----------------------
193 @node Problem Report fields
194 @subsection Problem Report fields
195 @cindex GNATS database fields
198 @c FIXME - this node is loooooooooooooooong...
200 @subheading Field descriptions
202 The following fields are present whenever a PR is submitted via the
203 program @code{send-pr}. @sc{gnats} adds additional fields when the PR
204 arrives at the Support Site; explanations of them follow this list.
206 @cindex fields - list
207 @cindex GNATS fields - list
209 @cindex @code{Submitter-Id} field
210 @cindex @code{>Submitter-Id:}
212 (@sc{Text}) A unique identification code assigned by the Support Site.
213 It is used to identify all Problem Reports coming from a particular
214 site. (Submitters without a value for this field can invoke
215 @code{send-pr} with the @samp{--request-id} option to apply for one from
216 the support organization. Problem Reports from those not affiliated
217 with the support organization should use the default value of @samp{net}
220 @cindex @code{Originator} field
221 @cindex @code{>Originator:}
223 (@sc{Text}) Originator's real name. The default is the value of the
224 originator's environment variable @code{NAME}.
226 @cindex @code{>Organization:}
227 @cindex @code{Organization} field
229 (@sc{MultiText}) The originator's organization. The default value is
230 set with the variable @w{@code{DEFAULT_ORGANIZATION}} in the
232 @file{config} file (@pxref{config file,,The @code{config} file}).
235 @code{send-pr} shell script.
238 @cindex @code{Confidential} field
239 @cindex @code{>Confidential:}
240 @cindex confidentiality in PRs
241 @cindex PR confidentiality
243 (@sc{Enumerated}) Use of this field depends on the originator's
244 relationship with the support organization; contractual agreements often
245 have provisions for preserving confidentiality. Conversely, a lack of a
246 contract often means that any data provided will not be considered
247 confidential. Submitters should be advised to contact the support
248 organization directly if this is an issue.
250 If the originator's relationship to the support organization provides
251 for confidentiality, then if the value of this field is @samp{yes} the
252 support organization treats the PR as confidential; any code samples
253 provided are not made publicly available (e.g., in regression test
254 suites). The default value is @samp{yes}.
256 @cindex @code{Synopsis} field
257 @cindex @code{>Synopsis:}
259 (@sc{Text}) One-line summary of the problem. @w{@code{send-pr}} copies
260 this information to the @samp{Subject:} line when you submit a Problem
263 @cindex @code{Severity} field
264 @cindex @code{>Severity:}
266 (@sc{Enumerated}) The severity of the problem. Accepted values include:
269 @cindex @emph{critical} severity problems
271 The product, component or concept is completely non-operational or some
272 essential functionality is missing. No workaround is known.
274 @cindex @emph{serious} severity problems
276 The product, component or concept is not working properly or significant
277 functionality is missing. Problems that would otherwise be considered
278 @samp{critical} are rated @samp{serious} when a workaround is known.
280 @cindex @emph{non-critical} severity problems
282 The product, component or concept is working in general, but lacks
283 features, has irritating behavior, does something wrong, or doesn't
284 match its documentation.
287 The default value is @samp{serious}.
290 @cindex @code{Priority} field
291 @cindex @code{>Priority:}
293 (@sc{Enumerated}) How soon the originator requires a solution. Accepted
297 @cindex @emph{high} priority problems
299 A solution is needed as soon as possible.
301 @cindex @emph{medium} priority problems
303 The problem should be solved in the next release.
305 @cindex @emph{low} priority problems
307 The problem should be solved in a future release.
310 The default value is @samp{medium}.
313 @cindex @code{Category} field
314 @cindex @code{>Category:}
316 (@sc{Text}) The name of the product, component or concept where
317 the problem lies. The values for this field are defined by the Support
320 @xref{categories file,,The @code{categories} file}, for details.
323 @cindex @code{Class} field
324 @cindex @code{>Class:}
326 (@sc{Enumerated}) The class of a problem can be one of the following:
329 @cindex @emph{sw-bug} class
331 A general product problem. (@samp{sw} stands for ``software''.)
333 @cindex @emph{doc-bug} class
335 A problem with the documentation.
337 @cindex @emph{change-request} class
339 A request for a change in behavior, etc.
341 @cindex @emph{support} class
343 A support problem or question.
345 @cindex @emph{duplicate} class
346 @item duplicate (@var{pr-number})
347 Duplicate PR. @var{pr-number} should be the number of the original PR.
350 @cindex @emph{mistaken} class
352 No problem, user error or misunderstanding. This value is valid only at
358 The default is @samp{sw-bug}.
361 @cindex @code{Release} field
362 @cindex @code{>Release:}
364 (@sc{Text}) Release or version number of the product, component or
367 @cindex @code{Environment} field
368 @cindex @code{>Environment:}
370 (@sc{MultiText}) Description of the environment where the problem occured:
371 machine architecture, operating system, host and target types,
372 libraries, pathnames, etc.
374 @cindex @code{Description} field
375 @cindex @code{>Description:}
377 (@sc{MultiText}) Precise description of the problem.
379 @cindex @code{How-To-Repeat} field
380 @cindex @code{>How-To-Repeat:}
381 @item >How-To-Repeat:
382 (@sc{MultiText}) Example code, input, or activities to reproduce the
383 problem. The support organization uses example code both to reproduce
384 the problem and to test whether the problem is fixed. Include all
385 preconditions, inputs, outputs, conditions after the problem, and
386 symptoms. Any additional important information should be included.
387 Include all the details that would be necessary for someone else to
388 recreate the problem reported, however obvious. Sometimes seemingly
389 arbitrary or obvious information can point the way toward a solution.
390 See also @ref{Helpful hints,,Helpful hints}.
392 @cindex @code{Fix} field
395 (@sc{MultiText}) A description of a solution to the problem, or a patch
396 which solves the problem. (This field is most often filled in at the
397 Support Site; we provide it to the submitter in case she has solved the
403 @sc{gnats} adds the following fields when the PR arrives at the Support
407 @cindex @code{Number} field
408 @cindex @code{>Number:}
410 (@sc{Enumerated}) The incremental identification number for this PR.
412 This is included in the automated reply to the submitter (if that
413 feature of @sc{gnats} is activated; @pxref{Local configuration,,Changing
414 your local configuration}). It is also included in the copy of the PR
415 that is sent to the maintainer.
418 The @samp{>Number:} field is often paired with the @samp{>Category:}
422 @var{category}/@var{number}
426 in subsequent email messages. This is for historical reasons, as well
427 as because Problem Reports are stored in subdirectories which are named
430 @cindex @code{State} field
431 @cindex @code{>State:}
433 (@sc{Enumerated}) The current state of the PR. Accepted values are:
437 The PR has been filed and the responsible person notified.
440 The responsible person has analyzed the problem.
443 The problem has been solved, and the originator has been given a patch
447 The changes have been integrated, documented, and tested, and the
448 originator has confirmed that the solution works.
451 Work on the problem has been postponed.
455 The initial state of a PR is @samp{open}. @xref{States,,States of
458 @cindex @code{Responsible} field
459 @cindex @code{>Responsible:}
461 (@sc{Text}) The person responsible for this category.
463 @sc{gnats} retrieves this information from the @file{categories} file
464 (@pxref{categories file,,The @code{categories} file}).
467 @cindex @code{>Arrival-Date:}
468 @cindex @code{Arrival-Date} field
470 (@sc{Text}) The time that this PR was received by @sc{gnats}. The date
471 is provided automatically by @sc{gnats}.
473 @cindex @code{>Audit-Trail:}
474 @cindex @code{Audit-Trail} field
476 (@sc{MultiText}) Tracks related electronic mail as well as changes in
477 the @samp{>State:} and @samp{>Responsible:} fields with the sub-fields:
480 @cindex @code{State-Changed-<From>-<To>:} in @code{>Audit-Trail:}
481 @item @w{State-Changed-<From>-<To>: @var{oldstate}>-<@var{newstate}}
482 The old and new @samp{>State:} field values.
484 @cindex @code{Responsible-Changed-<From>-<To>:} in @code{>Audit-Trail:}
485 @item @w{Responsible-Changed-<From>-<To>: @var{oldresp}>-<@var{newresp}}
486 The old and new @samp{>Responsible:} field values.
488 @cindex @code{State-Changed-By:} in @code{>Audit-Trail:}
489 @cindex @code{Responsible-Changed-By:} in @code{>Audit-Trail:}
490 @item State-Changed-By: @var{name}
491 @itemx Responsible-Changed-By: @var{name}
492 The name of the maintainer who effected the change.
494 @cindex @code{State-Changed-When:} in @code{>Audit-Trail:}
495 @cindex @code{Responsible-Changed-When:} in @code{>Audit-Trail:}
496 @item State-Changed-When: @var{timestamp}
497 @itemx Responsible-Changed-When: @var{timestamp}
498 The time the change was made.
500 @cindex @code{State-Changed-Why:} in @code{>Audit-Trail:}
501 @cindex @code{Responsible-Changed-Why:} in @code{>Audit-Trail:}
502 @item State-Changed-Why: @var{reason@dots{}}
503 @itemx Responsible-Changed-Why: @var{reason@dots{}}
504 The reason for the change.
507 @cindex subsequent mail
509 @cindex appending PRs
510 @cindex saving related mail
513 The @samp{>Audit-Trail:} field also contains any mail messages received
514 by @sc{gnats} related to this PR, in the order received.
516 @cindex @code{>Unformatted:}
517 @cindex @code{Unformatted} field
520 (@sc{MultiText}) Any random text found outside the fields in the
521 original Problem Report.