send-pr.texi revision 256281
1@c $FreeBSD: stable/10/gnu/usr.bin/send-pr/doc/send-pr.texi 67908 2000-10-29 22:05:52Z steve $
2
3\input texinfo   @c -*-texinfo-*-
4@setfilename send-pr.info
5@settitle Reporting Problems Using send-pr
6
7@setchapternewpage odd
8
9@include version.texi
10@set SENDPR
11
12@ifinfo
13@format
14START-INFO-DIR-ENTRY
15* send-pr: (send-pr).		Reporting problems--using send-pr
16END-INFO-DIR-ENTRY
17@end format
18@end ifinfo
19
20@ifinfo
21Copyright @copyright{} 1993, 1994, 1995 Free Software Foundation, Inc.
22
23Permission is granted to make and distribute verbatim copies of
24this manual provided the copyright notice and this permission notice
25are preserved on all copies.
26
27@ignore
28Permission is granted to process this file through TeX and print the
29results, provided the printed document carries a copying permission
30notice identical to this one except for the removal of this paragraph
31(this paragraph not being relevant to the printed manual).
32
33@end ignore
34
35Permission is granted to copy and distribute modified versions of this
36manual under the conditions for verbatim copying, provided also that
37the entire resulting derived work is distributed under the terms of a
38permission notice identical to this one.
39
40Permission is granted to copy and distribute translations of this manual
41into another language, under the above conditions for modified versions.
42@end ifinfo
43
44@titlepage
45@finalout
46@title Reporting Problems
47@subtitle Using @code{send-pr}, version @value{VERSION}
48@subtitle October 1993
49@author Jeffrey M. Osier
50@author Cygnus Support
51@page
52
53@vskip 0pt plus 1filll
54
55Copyright @copyright{} 1993, 1994, 1995 Free Software Foundation, Inc.
56
57Permission is granted to make and distribute verbatim copies of
58this manual provided the copyright notice and this permission notice
59are preserved on all copies.
60
61Permission is granted to copy and distribute modified versions of this
62manual under the conditions for verbatim copying, provided also that
63the entire resulting derived work is distributed under the terms of a
64permission notice identical to this one.
65
66Permission is granted to copy and distribute translations of this manual
67into another language, under the above conditions for modified versions.
68
69@end titlepage
70
71@c ---------------------------------------------------------------
72@node Top
73@top Overview
74@cindex foreword to @code{send-pr}
75@cindex overview to @code{send-pr}
76@cindex introduction to @code{send-pr}
77
78This manual documents @code{send-pr}, 
79@ifinfo
80version @value{VERSION},
81@end ifinfo
82which uses electronic mail to submit support questions and problem
83reports to a central Support Site.  No body of work is perfect, and
84support organizations understand this; @code{send-pr} is designed to
85allow users who have problems to submit reports of these problems to
86sites responsible for supporting the products in question, in a defined
87form which can be read by an electronically managed database.
88
89@cindex GNATS
90@code{send-pr} is part of a suite of programs known collectively as
91@sc{gnats}, the @sc{gnu} Problem Report Management System.  @sc{gnats}
92consists of several programs which, used in concert, formulate and
93partially administer a database of @dfn{Problem Reports}, or @dfn{PRs},
94at a central Support Site.  A PR goes through several states in its
95lifetime; @sc{gnats} tracks the PR and all information associated with it
96through each state and finally acts as an archive for PRs which have
97been @dfn{closed}.
98
99Because @code{send-pr} exists as a shell (@file{/bin/sh}) script and as
100an Elisp file for use with @sc{gnu} Emacs, it can be used from any
101machine on your network which can run a shell script and/or Emacs.
102
103In general, you can use any editor and mailer to submit valid Problem
104Reports, as long as the format required by @sc{gnats} is preserved.
105@code{send-pr} automates the process, however, and ensures that certain
106fields necessary for automatic processing are present.  @code{send-pr}
107is strongly recommended for all initial problem-oriented correspondence
108with your Support Site.  The organization you submit Problem Reports to
109supplies an address to which further information can be sent; the person
110responsible for the category of the problem you report contacts you
111directly.
112
113@menu
114* send-pr in detail::     Details about send-pr and GNATS
115* Invoking send-pr::      Editing and sending PRs
116* An Example::            A working example
117* Installing send-pr::    Installing send-pr on your system
118* Index::
119@end menu
120
121@node send-pr in detail
122@chapter Details about send-pr and GNATS
123
124@cindex details about @code{send-pr}
125@cindex Problem Reports
126A @dfn{Problem Report} is a message that describes a problem you are
127having with a body of work.  @code{send-pr} organizes this message into
128a form which can be understood and automatically processed by @sc{gnats},
129the @sc{gnu} Problem Report Management System.  A Problem Report is
130organized into @dfn{fields} which contain data describing you, your
131organization, and the problem you are announcing (@pxref{Fields,,Problem
132Report format}).  Problem Reports go through several defined states in
133their lifetimes, from @dfn{open} to @dfn{closed} (@pxref{States,,States
134of Problem Reports}).
135
136@menu
137* States::                     States of Problem Reports
138* Fields::                     Problem Report format
139@end menu
140
141@include states.texi
142
143@include fields.texi
144
145@node Invoking send-pr
146@chapter Editing and sending PRs
147@cindex editing and sending PRs
148@cindex sending PRs
149@cindex invoking send-pr
150@cindex using send-pr
151@cindex generating new PRs
152
153@include s-usage.texi
154
155@node An Example
156@chapter An Example
157@cindex an example
158@cindex example PR
159@cindex Cygnus Solutions
160@cindex @sc{gnu} software support
161Cygnus Solutions in Sunnyvale, CA, uses @sc{gnats} and @code{send-pr}
162extensively for their support activities.  As a support company, Cygnus
163finds problem tracking to be a crucial part of everyday business.
164Cygnus supports the @sc{gnu} compiling tools (including @sc{gnats} and
165@code{send-pr}) over several many platforms
166
167With each shipment of the Cygnus Solutions Developer's Kit, customers
168receive the latest version of @code{send-pr}, which contains an
169up-to-date listing of valid categories (values for the @code{>Category:}
170field).  Using these tools, Cygnus' customers can communicate their
171problems to Cygnus effectively and receive automatic confirmation of
172receipt as well as notification of changes in the status of their
173reported problems.  Much of Cygnus' support mechanism relies on
174electronic mail.
175
176As an example, let's pretend we're a customer of Cygnus Solutions, and
177that we're having a problem compiling some of our software using the
178@sc{gnu} C compiler, which Cygnus supports.
179
180Assume that we're getting an error in our @code{bifrabulator} program
181wherein the @samp{prestidigitation} routines don't match with the
182@samp{whatsitsname}.  We've made sure we're following the rules of the
183program and checked the Release Notes from Cygnus and found that the bug
184isn't already known.  In other words, we're pretty sure we've found a
185bug.
186
187@cindex Imaginary Software, Ltd.
188Our first step is to call @code{send-pr}.  It really doesn't matter
189whether we use @code{send-pr} from the shell or from within Emacs.
190Indeed, if we use Emacs as a primary editor, calling @code{send-pr} from
191the shell is likely to start @code{send-pr} in an Emacs buffer anyway.
192So, since our company, @emph{Imaginary Software, Ltd.}, uses @sc{gnu}
193software extensively, we're pretty familiar with Emacs, so from within
194Emacs we type
195@smallexample
196M-x send-pr
197@end smallexample
198@noindent
199and we're greeted with the following screen:
200
201@cindex default PR template
202@cindex example of a default template
203@cindex blank PR template
204@cindex @code{bifrabulator}
205@cartouche
206@smallexample
207SEND-PR: -*- text  -*-
208SEND-PR: Lines starting with `SEND-PR' will be removed 
209SEND-PR: automatically as well as all comments (the text
210SEND-PR: below enclosed in `<' and `>').
211SEND-PR: Please consult the manual if you are not sure
212SEND-PR: how to fill out a problem report.
213SEND-PR:
214SEND-PR: Choose from the following categories:
215SEND-PR:
216SEND-PR:           bfd       binutils  bison       
217SEND-PR: byacc     clib      config    cvs         diff        
218SEND-PR: doc       emacs     flex      g++         gas         
219SEND-PR: gcc       gdb       glob      gprof       grep        
220SEND-PR: info      ispell    kerberos  ld          libg++      
221SEND-PR: libiberty make      makeinfo  mas         newlib      
222SEND-PR: other     patch     rcs       readline    send-pr     
223SEND-PR: test      texindex  texinfo   texinfo.tex 
224SEND-PR: bifrabulator  <---@emph{note: this one is fake}
225SEND-PR:
226To: cygnus-bugs@@cygnus.com 
227Subject: 
228From: jeffrey@@imaginary.com
229Reply-To: jeffrey@@imaginary.com
230X-send-pr-version: send-pr @value{VERSION}
231
232>Submitter-Id:  imaginary
233>Originator:    Jeffrey Osier
234>Organization:  
235Imaginary Software, Ltd.
236>Confidential:  <[ yes | no ] (one line)>
237>Synopsis:      <synopsis of the problem (one line)>
238>Severity:      <[ non-critical | serious | critical ] (one line)>
239>Priority:      <[ low | medium | high ] (one line)>
240>Category:      <name of the product (one line)>
241>Class:         <[sw-bug|doc-bug|change-request|support](oneline)>
242>Release:       <release number or tag (one line)>
243>Environment:
244         <machine, os, target, libraries (multiple lines)>
245System: SunOS imaginary.com 4.1.1 1 sun4
246Architecture: sun4
247
248>Description:
249       <precise description of the problem (multiple lines)>
250>How-To-Repeat:
251       <code/input/activities to reproduce (multiple lines)>
252>Fix:
253@iftex
254@hrule
255@end iftex
256-----Emacs: *send-pr*   (send-pr Fill)----All------------------
257@iftex
258@hrule
259@end iftex
260>Category: other[]
261@end smallexample
262@end cartouche
263@page
264We know from past experience that we need to set certain information into
265each field, so we compile all the information we know about our problem.
266We have some sample code which we know should work, even though it
267doesn't, so we'll include that.  Below is the completed PR; we send this
268using @kbd{C-c C-c}.  (The comments have been truncated).
269
270@cindex completed Problem Report
271@cindex example of a completed PR
272@cartouche
273@smallexample
274SEND-PR: Lines starting with `SEND-PR' will be removed
275SEND-PR: automatically as well as all comments (the text
276SEND-PR: @dots{}
277SEND-PR:
278To: cygnus-bugs@@cygnus.com 
279Subject: bifrabulator routines don't match
280From: jeffrey@@imaginary.com
281Reply-To: jeffrey@@imaginary.com
282X-send-pr-version: send-pr @value{VERSION}
283
284>Submitter-Id:  imaginary
285>Originator:    Jeffrey Osier
286>Organization:  
287Imaginary Software, Ltd.
288>Confidential:  no
289>Synopsis:      bifrabulator routines don't match
290>Severity:      serious
291>Priority:      medium
292>Category:      bifrabulator
293>Class:         sw-bug
294>Release:       progressive-930101
295>Environment:   
296System: SunOS imaginary.com 4.1.1 1 sun4
297Architecture: sun4 (SPARC)
298
299>Description:
300   the following code I fed into the bifrabulator came back 
301   with a strange error.  apparently, the prestidigitation 
302   routine doesn't match with the whatsitsname in all cases.
303
304>How-To-Repeat:
305   call the bifrabulator on the following code.
306   @emph{code sample@dots{}}
307
308>Fix:
309@iftex
310@hrule
311@end iftex
312-----Emacs: *send-pr*   (send-pr Fill)----All------------------
313@iftex
314@hrule
315@end iftex
316To send the problem report use: C-c C-c
317@end smallexample
318@end cartouche
319
320We type @kbd{C-c C-c}, and off it goes.  Now, we depend on Cygnus
321Support to figure out the answer to our problem.
322
323Soon afterward, we get the following message from Cygnus:
324
325@smallexample
326@group
327From: gnats (GNATS management)
328Sender: gnats-admin
329Reply-To: hacker@@cygnus.com
330To: jeffrey@@imaginary.com
331Subject: Re: bifrabulator/1425: routines don't match
332
333Thank you very much for your problem report.
334It has the internal identification: g++/1425.
335The individual assigned to look at your bug is:  hacker
336(F.B. Hacker)
337
338Category: bifrabulator
339Responsible: hacker
340Synopsis: bifrabulator routines don't match
341Arrival-Date: Sat Feb 30 03:12:55 1993
342@end group
343@end smallexample
344
345@noindent
346This is our receipt that the bug has been accepted and forwarded to the
347responsible party.
348
349@noindent
350A while later, we get the analysis:
351
352@smallexample
353@group
354To:  jeffrey@@imaginary.com
355From:  hacker@@cygnus.com
356Subject:  Re: bifrabulator/1425: routines don't match
357Reply-To: hacker@@cygnus.com
358
359Got your message, Jeff.  It seems that the bifrabulator was 
360confusing the prestidigitation routines with the realitychecker
361when lexically parsing the whatsitsname.
362
363I'm working on robustisizing the bifrabulator now.
364
365How about lunch next week?
366--
367F.B. Hacker
368Cygnus Solutions, Sunnyvale, CA  408 542 9600
369#include <std-disclaimer.h>
370@end group
371@end smallexample
372
373@noindent
374About the same time, we get another message from Cygnus.
375
376@cindex state change example
377@cindex example of a state change
378@smallexample
379@group
380From: hacker@@cygnus.com
381To:  jeffrey@@imaginary.com
382Subject:  Re: bifrabulator/1425: doesn't match prestidig
383Reply-To:  hacker@@cygnus.com
384
385
386             `F.B. Hacker' changed the state to `analyzed'.
387
388State-Changed-From-To: open-analyzed
389State-Changed-By: hacker
390State-Changed-When: Fri Feb 31 1993 08:59:16 1993
391State-Changed-Why:
392    figured out the problem, working on a patch this afternoon
393--
394F.B. Hacker
395Cygnus Solutions, Sunnyvale, CA  408 542 9600
396#include <std-disclaimer.h>
397@end group
398@end smallexample
399
400@noindent
401The bug has now been analyzed, and Cygnus is working on a solution.
402
403@noindent
404Sometime later, we get more mail from F.B.:
405
406@smallexample
407@group
408To:  jeffrey@@imaginary.com
409From:  hacker@@cygnus.com
410Subject:  Re: bifrabulator/1425: routines don't match
411Reply-To: hacker@@cygnus.com
412
413There's a patch now that you can ftp over and check out.
414
415Hey, that joke you sent me was great!  The one about the
416strings walking into a bar...  my boss laughed for an hour!
417--
418F.B. Hacker
419Cygnus Solutions, Sunnyvale, CA  408 542 9600
420#include <std-disclaimer.h>
421@end group
422@end smallexample
423@sp 2
424@smallexample
425@group
426From: hacker@@cygnus.com
427To:  jeffrey@@imaginary.com
428Subject:  Re: bifrabulator/1425: doesn't match prestidig
429Reply-To:  hacker@@cygnus.com
430
431
432             `F.B. Hacker' changed the state to `feedback'.
433
434State-Changed-From-To: analyzed-feedback
435State-Changed-By: hacker
436State-Changed-When: Fri Feb 31 1993 23:43:16 1993
437State-Changed-Why:
438    got the patch finished, notified Jeff at Imaginary Software
439--
440F.B. Hacker
441Cygnus Solutions, Sunnyvale, CA  408 542 9600
442#include <std-disclaimer.h>
443@end group
444@end smallexample
445
446@noindent
447The bug has gone into @dfn{feedback} status now, until we get the patch,
448install it and test it.  When everything tests well, we can mail F.B.
449back and tell him the bug's been fixed, and he can change the state of
450the PR from @dfn{feedback} to @dfn{closed}.
451
452Following is a list of valid @samp{>Category:} entries that are
453supported by Cygnus.
454
455@menu
456* Valid Categories::
457@end menu
458
459@c FIXME - is this list up to date?
460@include categ.texi
461
462@node Installing send-pr
463@appendix Installing @code{send-pr} on your system
464@cindex installation
465
466If you receive @code{send-pr} as part of a larger software distribution,
467it probably gets installed when the full distribution is installed.  If
468you are using @sc{gnats} at your site as well, you must decide where
469@code{send-pr} sends Problem Reports by default; see @ref{default site,,
470Setting a default @var{site}}.
471
472@menu
473* installation::   installing `send-pr' by itself
474* default site::   setting a default site
475@end menu
476
477@node installation
478@section Installing @code{send-pr} by itself
479@cindex installation procedure
480
481Install @code{send-pr} by following these steps (you may need
482@code{root} access in order to change the @file{aliases} file and to
483install @code{send-pr}):
484
485@itemize @bullet
486@item
487Unpack the distribution into a directory which we refer to as
488@var{srcdir}.
489
490@item
491Edit the file @file{Makefile} to reflect local conventions.
492Specifically, you should edit the variable @samp{prefix} to alter the
493installation location.  The default is @file{/usr/local}.  All files are
494installed under @samp{prefix} (see below).
495
496@item @emph{Run}
497@smallexample
498make all install [ info ] [ install-info ] [ clean ]
499@end smallexample
500
501@noindent
502The targets mean the following:
503
504@table @code
505@item all
506Builds @code{send-pr} and @code{install-sid}
507
508@item install
509Installs the following:
510
511@table @code
512@item install-sid
513@itemx send-pr
514into @file{@var{prefix}/bin}
515
516@item send-pr.1
517into @file{@var{prefix}/man/man1}
518
519@item @var{site}
520the list of valid @var{categories} for the Support Site from which you
521received @code{send-pr}, installed as
522@w{@file{@var{prefix}/share/gnats/@var{site}}}
523
524@item send-pr.el
525into @w{@file{@var{prefix}/share/emacs/lisp}}@footnote{If your main Emacs
526lisp repository is in a different directory from this, substitute that
527directory for @w{@file{@var{prefix}/share/emacs/lisp}}.}
528@end table
529
530@item info (@emph{optional})
531Builds @file{send-pr.info} from @file{send-pr.texi}@*
532@c FIXME - is this still true?
533(@file{send-pr.info} is included with this distribution)
534
535@item install-info (@emph{optional})
536Installs @file{send-pr.info} into @w{@file{@var{prefix}/info}}
537
538@item clean (@emph{optional})
539Removes all intermediary build files that can be rebuilt from source
540code
541@end table
542
543@item
544Run
545
546@smallexample
547install-sid @var{your-sid}
548@end smallexample
549
550@noindent
551where @var{your-sid} is the identification code you received with
552@w{@code{send-pr}}.  @code{send-pr} automatically inserts this value
553into the template field @samp{>Submitter-Id:}.  If you've downloaded
554@code{send-pr} from the Net, use @samp{net} for this value.
555
556@item 
557Place the following line in
558@w{@file{@var{prefix}/share/emacs/lisp/default.el}}, or instruct your
559users to place the following line in their @file{.emacs} files:
560
561@smallexample
562(autoload 'send-pr "send-pr" "Submit a Problem Report." t)
563@end smallexample
564
565@item 
566Create a mail alias for the Support Site from which you received
567@code{send-pr}, and for every site with which you wish to use
568@code{send-pr} to communicate.  Each alias must have a suffix of
569@samp{-gnats}.  The Support Site(s) will provide the correct addresses
570where these aliases should point.  For instance, edit your mail aliases
571file to contain something like:
572
573@smallexample
574# support sites; for use with send-pr
575cygnus-gnats:     bugs@@cygnus.com            # Cygnus Solutions
576bumblebee-gnats:  bumblebugs@@bumblebee.com   # Bumblebee Inc.
577mycompany-gnats:  bugs@@my.company.com (@emph{if you use @sc{gnats} locally})
578@end smallexample
579
580@code{send-pr} automatically searches for these aliases when you type
581
582@smallexample
583send-pr cygnus
584send-pr bumblebee
585send-pr @var{site}@dots{}
586@end smallexample
587
588@noindent
589@code{send-pr} also uses @var{site} to determine the categories of
590problems accepted by the site in question by looking in
591
592@smallexample
593@var{prefix}/share/gnats/@var{site}
594@end smallexample
595
596@end itemize
597
598@node default site
599@section Setting a default @var{site}
600@cindex default @var{site}
601@cindex setting a default @var{site}
602
603@code{send-pr} is capable of sending Problem Reports to any number of
604Support Sites, using mail aliases which have @samp{-gnats} appended them.
605@code{send-pr} automatically appends the suffix, so that when you type
606
607@smallexample
608send-pr @var{site}
609@end smallexample
610
611@noindent
612the Problem Report goes to the address noted in the @file{aliases} file
613as @w{@samp{@var{site}-gnats}}.  You can do this in the Emacs version of
614@code{send-pr} by invoking the program with
615
616@smallexample
617C-u M-x send-pr
618@end smallexample
619
620@noindent
621You are prompted for @var{site}.
622
623@var{site} is also used to error-check the @samp{>Category:} field, as a
624precaution against sending mistaken information (and against sending
625information to the wrong site).
626
627You may also simply type
628
629@smallexample
630send-pr
631@end smallexample
632
633@noindent
634from the shell (or @w{@samp{M-x send-pr}} in Emacs), and the Problem
635Report you generate will be sent to the @var{site}, which is usually the
636site from which you received your distribution of @w{@code{send-pr}}.
637If you use @sc{gnats} at your own organization, the default is usually
638your local address for reporting problems.
639
640To change this, simply edit the file @file{Makefile} before installing
641and change the line 
642
643@smallexample
644GNATS_SITE = @var{site}
645@end smallexample
646
647@noindent
648to reflect the site where you wish to send PRs by default.
649
650@c ---------------------------------------------------------------
651@node Index
652@unnumbered Index
653
654@printindex cp
655
656@c ---------------------------------------------------------------
657@contents
658@bye
659