1 \input texinfo @c -*-texinfo-*-
2 @setfilename send-pr.info
3 @settitle Reporting Problems Using send-pr
13 * send-pr: (send-pr). Reporting problems--using send-pr
19 Copyright @copyright{} 1993, 1994 Free Software Foundation, Inc.
21 Permission is granted to make and distribute verbatim copies of
22 this manual provided the copyright notice and this permission notice
23 are preserved on all copies.
26 Permission is granted to process this file through TeX and print the
27 results, provided the printed document carries a copying permission
28 notice identical to this one except for the removal of this paragraph
29 (this paragraph not being relevant to the printed manual).
33 Permission is granted to copy and distribute modified versions of this
34 manual under the conditions for verbatim copying, provided also that
35 the entire resulting derived work is distributed under the terms of a
36 permission notice identical to this one.
38 Permission is granted to copy and distribute translations of this manual
39 into another language, under the above conditions for modified versions.
44 @title Reporting Problems
45 @subtitle Using @code{send-pr}, version @value{VERSION}
46 @subtitle October 1993
47 @author Jeffrey M. Osier
48 @author Cygnus Support
51 @vskip 0pt plus 1filll
53 Copyright @copyright{} 1993, 1994 Free Software Foundation, Inc.
55 Permission is granted to make and distribute verbatim copies of
56 this manual provided the copyright notice and this permission notice
57 are preserved on all copies.
59 Permission is granted to copy and distribute modified versions of this
60 manual under the conditions for verbatim copying, provided also that
61 the entire resulting derived work is distributed under the terms of a
62 permission notice identical to this one.
64 Permission is granted to copy and distribute translations of this manual
65 into another language, under the above conditions for modified versions.
69 @c ---------------------------------------------------------------
72 @cindex foreword to @code{send-pr}
73 @cindex overview to @code{send-pr}
74 @cindex introduction to @code{send-pr}
76 This manual documents @code{send-pr},
78 version @value{VERSION},
80 which uses electronic mail to submit support questions and problem
81 reports to a central Support Site. No body of work is perfect, and
82 support organizations understand this; @code{send-pr} is designed to
83 allow users who have problems to submit reports of these problems to
84 sites responsible for supporting the products in question, in a defined
85 form which can be read by an electronically managed database.
88 @code{send-pr} is part of a suite of programs known collectively as
89 @sc{gnats}, the @sc{gnu} Problem Report Management System. @sc{gnats}
90 consists of several programs which, used in concert, formulate and
91 partially administer a database of @dfn{Problem Reports}, or @dfn{PRs},
92 at a central Support Site. A PR goes through several states in its
93 lifetime; @sc{gnats} tracks the PR and all information associated with it
94 through each state and finally acts as an archive for PRs which have
97 Because @code{send-pr} exists as a shell (@file{/bin/sh}) script and as
98 an Elisp file for use with @sc{gnu} Emacs, it can be used from any
99 machine on your network which can run a shell script and/or Emacs.
101 In general, you can use any editor and mailer to submit valid Problem
102 Reports, as long as the format required by @sc{gnats} is preserved.
103 @code{send-pr} automates the process, however, and ensures that certain
104 fields necessary for automatic processing are present. @code{send-pr}
105 is strongly recommended for all initial problem-oriented correspondence
106 with your Support Site. The organization you submit Problem Reports to
107 supplies an address to which further information can be sent; the person
108 responsible for the category of the problem you report contacts you
112 * send-pr in detail:: Details about send-pr and GNATS
113 * Invoking send-pr:: Editing and sending PRs
114 * An Example:: A working example
115 * Installing send-pr:: Installing send-pr on your system
119 @node send-pr in detail
120 @chapter Details about send-pr and GNATS
122 @cindex details about @code{send-pr}
123 @cindex Problem Reports
124 A @dfn{Problem Report} is a message that describes a problem you are
125 having with a body of work. @code{send-pr} organizes this message into
126 a form which can be understood and automatically processed by @sc{gnats},
127 the @sc{gnu} Problem Report Management System. A Problem Report is
128 organized into @dfn{fields} which contain data describing you, your
129 organization, and the problem you are announcing (@pxref{Fields,,Problem
130 Report format}). Problem Reports go through several defined states in
131 their lifetimes, from @dfn{open} to @dfn{closed} (@pxref{States,,States
132 of Problem Reports}).
135 * States:: States of Problem Reports
136 * Fields:: Problem Report format
143 @node Invoking send-pr
144 @chapter Editing and sending PRs
145 @cindex editing and sending PRs
147 @cindex invoking send-pr
148 @cindex using send-pr
149 @cindex generating new PRs
151 @include s-usage.texi
157 @cindex Cygnus Support
158 @cindex GNU software support
160 Cygnus Support in Mountain View, CA, uses @sc{gnats} and @code{send-pr}
161 extensively for their support activities. As a support company, Cygnus
162 finds problem tracking to be a crucial part of everyday business.
163 Cygnus supports the @sc{gnu} compiling tools (including @sc{gnats} and
164 @code{send-pr}) over several many platforms
166 With each shipment of the Cygnus Support Developer's Kit, customers
167 receive the latest version of @code{send-pr}, which contains an
168 up-to-date listing of valid categories (values for the @code{>Category:}
169 field). Using these tools, Cygnus' customers can communicate their
170 problems to Cygnus effectively and receive automatic confirmation of
171 receipt as well as notification of changes in the status of their
172 reported problems. Much of Cygnus' support mechanism relies on
175 As an example, let's pretend we're a customer of Cygnus Support, and
176 that we're having a problem compiling some of our software using the
177 @sc{gnu} C compiler, which Cygnus supports.
179 Assume that we're getting an error in our @code{bifrabulator} program
180 wherein the @samp{prestidigitation} routines don't match with the
181 @samp{whatsitsname}. We've made sure we're following the rules of the
182 program and checked the Release Notes from Cygnus and found that the bug
183 isn't already known. In other words, we're pretty sure we've found a
186 @cindex Imaginary Software, Ltd.
187 Our first step is to call @code{send-pr}. It really doesn't matter
188 whether we use @code{send-pr} from the shell or from within Emacs.
189 Indeed, if we use Emacs as a primary editor, calling @code{send-pr} from
190 the shell is likely to start @code{send-pr} in an Emacs buffer anyway.
191 So, since our company, @emph{Imaginary Software, Ltd.}, uses @sc{gnu}
192 software extensively, we're pretty familiar with Emacs, so from within
198 and we're greeted with the following screen:
200 @cindex default PR template
201 @cindex example of a default template
202 @cindex blank PR template
203 @cindex @code{bifrabulator}
206 SEND-PR: -*- text -*-
207 SEND-PR: Lines starting with `SEND-PR' will be removed
208 SEND-PR: automatically as well as all comments (the text
209 SEND-PR: below enclosed in `<' and `>').
210 SEND-PR: Please consult the manual if you are not sure
211 SEND-PR: how to fill out a problem report.
213 SEND-PR: Choose from the following categories:
215 SEND-PR: bfd binutils bison
216 SEND-PR: byacc clib config cvs diff
217 SEND-PR: doc emacs flex g++ gas
218 SEND-PR: gcc gdb glob gprof grep
219 SEND-PR: info ispell kerberos ld libg++
220 SEND-PR: libiberty make makeinfo mas newlib
221 SEND-PR: other patch rcs readline send-pr
222 SEND-PR: test texindex texinfo texinfo.tex
223 SEND-PR: bifrabulator <---@emph{note: this one is fake}
225 To: cygnus-bugs@@cygnus.com
227 From: jeffrey@@imaginary.com
228 Reply-To: jeffrey@@imaginary.com
229 X-send-pr-version: send-pr @value{VERSION}
231 >Submitter-Id: imaginary
232 >Originator: Jeffrey Osier
234 Imaginary Software, Ltd.
235 >Confidential: <[ no | yes ] (one line)>
236 >Synopsis: <synopsis of the problem (one line)>
237 >Severity: <[ non-critical | serious | critical ] (one line)>
238 >Priority: <[ low | medium | high ] (one line)>
239 >Category: <name of the product (one line)>
240 >Class: <[sw-bug|doc-bug|change-request|support](oneline)>
241 >Release: <release number or tag (one line)>
243 <machine, os, target, libraries (multiple lines)>
244 System: SunOS imaginary.com 4.1.1 1 sun4
248 <precise description of the problem (multiple lines)>
250 <code/input/activities to reproduce (multiple lines)>
255 -----Emacs: *send-pr* (send-pr Fill)----All------------------
263 We know from past experience that we need to set certain information into
264 each field, so we compile all the information we know about our problem.
265 We have some sample code which we know should work, even though it
266 doesn't, so we'll include that. Below is the completed PR; we send this
267 using @kbd{C-c C-c}. (The comments have been truncated).
269 @cindex completed Problem Report
270 @cindex example of a completed PR
273 SEND-PR: Lines starting with `SEND-PR' will be removed
274 SEND-PR: automatically as well as all comments (the text
277 To: cygnus-bugs@@cygnus.com
278 Subject: bifrabulator routines don't match
279 From: jeffrey@@imaginary.com
280 Reply-To: jeffrey@@imaginary.com
281 X-send-pr-version: send-pr @value{VERSION}
283 >Submitter-Id: imaginary
284 >Originator: Jeffrey Osier
286 Imaginary Software, Ltd.
288 >Synopsis: bifrabulator routines don't match
291 >Category: bifrabulator
293 >Release: progressive-930101
295 System: SunOS imaginary.com 4.1.1 1 sun4
296 Architecture: sun4 (SPARC)
299 the following code I fed into the bifrabulator came back
300 with a strange error. apparently, the prestidigitation
301 routine doesn't match with the whatsitsname in all cases.
304 call the bifrabulator on the following code.
305 @emph{code sample@dots{}}
311 -----Emacs: *send-pr* (send-pr Fill)----All------------------
315 To send the problem report use: C-c C-c
319 We type @kbd{C-c C-c}, and off it goes. Now, we depend on Cygnus
320 Support to figure out the answer to our problem.
322 Soon afterward, we get the following message from Cygnus:
326 From: gnats (GNATS management)
328 Reply-To: hacker@@cygnus.com
329 To: jeffrey@@imaginary.com
330 Subject: Re: bifrabulator/1425: routines don't match
332 Thank you very much for your problem report.
333 It has the internal identification: g++/1425.
334 The individual assigned to look at your bug is: hacker
337 Category: bifrabulator
339 Synopsis: bifrabulator routines don't match
340 Arrival-Date: Sat Feb 30 03:12:55 1993
345 This is our receipt that the bug has been accepted and forwarded to the
349 A while later, we get the analysis:
353 To: jeffrey@@imaginary.com
354 From: hacker@@cygnus.com
355 Subject: Re: bifrabulator/1425: routines don't match
356 Reply-To: hacker@@cygnus.com
358 Got your message, Jeff. It seems that the bifrabulator was
359 confusing the prestidigitation routines with the realitychecker
360 when lexically parsing the whatsitsname.
362 I'm working on robustisizing the bifrabulator now.
364 How about lunch next week?
367 Cygnus Support, Mountain View, CA 415 903 1400
368 #include <std-disclaimer.h>
373 About the same time, we get another message from Cygnus.
375 @cindex state change example
376 @cindex example of a state change
379 From: hacker@@cygnus.com
380 To: jeffrey@@imaginary.com
381 Subject: Re: bifrabulator/1425: doesn't match prestidig
382 Reply-To: hacker@@cygnus.com
385 `F.B. Hacker' changed the state to `analyzed'.
387 State-Changed-From-To: open-analyzed
388 State-Changed-By: hacker
389 State-Changed-When: Fri Feb 31 1993 08:59:16 1993
391 figured out the problem, working on a patch this afternoon
394 Cygnus Support, Mountain View, CA 415 903 1400
395 #include <std-disclaimer.h>
400 The bug has now been analyzed, and Cygnus is working on a solution.
403 Sometime later, we get more mail from F.B.:
407 To: jeffrey@@imaginary.com
408 From: hacker@@cygnus.com
409 Subject: Re: bifrabulator/1425: routines don't match
410 Reply-To: hacker@@cygnus.com
412 There's a patch now that you can ftp over and check out.
414 Hey, that joke you sent me was great! The one about the
415 strings walking into a bar... my boss laughed for an hour!
418 Cygnus Support, Mountain View, CA 415 903 1400
419 #include <std-disclaimer.h>
425 From: hacker@@cygnus.com
426 To: jeffrey@@imaginary.com
427 Subject: Re: bifrabulator/1425: doesn't match prestidig
428 Reply-To: hacker@@cygnus.com
431 `F.B. Hacker' changed the state to `feedback'.
433 State-Changed-From-To: analyzed-feedback
434 State-Changed-By: hacker
435 State-Changed-When: Fri Feb 31 1993 23:43:16 1993
437 got the patch finished, notified Jeff at Imaginary Software
440 Cygnus Support, Mountain View, CA 415 903 1400
441 #include <std-disclaimer.h>
446 The bug has gone into @dfn{feedback} status now, until we get the patch,
447 install it and test it. When everything tests well, we can mail F.B.
448 back and tell him the bug's been fixed, and he can change the state of
449 the PR from @dfn{feedback} to @dfn{closed}.
451 Following is a list of valid @samp{>Category:} entries that are
458 @c FIXME - is this list up to date?
461 @node Installing send-pr
462 @appendix Installing @code{send-pr} on your system
465 If you receive @code{send-pr} as part of a larger software distribution,
466 it probably gets installed when the full distribution is installed. If
467 you are using @sc{gnats} at your site as well, you must decide where
468 @code{send-pr} sends Problem Reports by default; see @ref{default site,,
469 Setting a default @var{site}}.
472 * installation:: installing `send-pr' by itself
473 * default site:: setting a default site
477 @section Installing @code{send-pr} by itself
478 @cindex installation procedure
480 Install @code{send-pr} by following these steps (you may need
481 @code{root} access in order to change the @file{aliases} file and to
482 install @code{send-pr}):
486 Unpack the distribution into a directory which we refer to as
490 Edit the file @file{Makefile} to reflect local conventions.
491 Specifically, you should edit the variable @samp{prefix} to alter the
492 installation location. The default is @file{/usr/local}. All files are
493 installed under @samp{prefix} (see below).
497 make all install [ info ] [ install-info ] [ clean ]
501 The targets mean the following:
505 Builds @code{send-pr} and @code{install-sid}
508 Installs the following:
513 into @file{@var{prefix}/bin}
516 into @file{@var{prefix}/man/man1}
519 the list of valid @var{categories} for the Support Site from which you
520 received @code{send-pr}, installed as
521 @w{@file{@var{prefix}/lib/gnats/@var{site}}}
524 into @w{@file{@var{prefix}/lib/emacs/lisp}}@footnote{If your main Emacs
525 lisp repository is in a different directory from this, substitute that
526 directory for @w{@file{@var{prefix}/lib/emacs/lisp}}.}
529 @item info (@emph{optional})
530 Builds @file{send-pr.info} from @file{send-pr.texi}@*
531 @c FIXME - is this still true?
532 (@file{send-pr.info} is included with this distribution)
534 @item install-info (@emph{optional})
535 Installs @file{send-pr.info} into @w{@file{@var{prefix}/info}}
537 @item clean (@emph{optional})
538 Removes all intermediary build files that can be rebuilt from source
546 install-sid @var{your-sid}
550 where @var{your-sid} is the identification code you received with
551 @w{@code{send-pr}}. @code{send-pr} automatically inserts this value
552 into the template field @samp{>Submitter-Id:}. If you've downloaded
553 @code{send-pr} from the Net, use @samp{net} for this value.
556 Place the following line in
557 @w{@file{@var{prefix}/lib/emacs/lisp/default.el}}, or instruct your
558 users to place the following line in their @file{.emacs} files:
561 (autoload 'send-pr "send-pr" "Submit a Problem Report." t)
565 Create a mail alias for the Support Site from which you received
566 @code{send-pr}, and for every site with which you wish to use
567 @code{send-pr} to communicate. Each alias must have a suffix of
568 @samp{-gnats}. The Support Site(s) will provide the correct addresses
569 where these aliases should point. For instance, edit your mail aliases
570 file to contain something like:
573 # support sites; for use with send-pr
574 cygnus-gnats: bugs@@cygnus.com # Cygnus Support
575 bumblebee-gnats: bumblebugs@@bumblebee.com # Bumblebee Inc.
576 mycompany-gnats: bugs@@my.company.com (@emph{if you use @sc{gnats} locally})
579 @code{send-pr} automatically searches for these aliases when you type
584 send-pr @var{site}@dots{}
588 @code{send-pr} also uses @var{site} to determine the categories of
589 problems accepted by the site in question by looking in
592 @var{prefix}/lib/gnats/@var{site}
598 @section Setting a default @var{site}
599 @cindex default @var{site}
600 @cindex setting a default @var{site}
602 @code{send-pr} is capable of sending Problem Reports to any number of
603 Support Sites, using mail aliases which have @samp{-gnats} appended them.
604 @code{send-pr} automatically appends the suffix, so that when you type
611 the Problem Report goes to the address noted in the @file{aliases} file
612 as @w{@samp{@var{site}-gnats}}. You can do this in the Emacs version of
613 @code{send-pr} by invoking the program with
620 You are prompted for @var{site}.
622 @var{site} is also used to error-check the @samp{>Category:} field, as a
623 precaution against sending mistaken information (and against sending
624 information to the wrong site).
626 You may also simply type
633 from the shell (or @w{@samp{M-x send-pr}} in Emacs), and the Problem
634 Report you generate will be sent to the @var{site}, which is usually the
635 site from which you received your distribution of @w{@code{send-pr}}.
636 If you use @sc{gnats} at your own organization, the default is usually
637 your local address for reporting problems.
639 To change this, simply edit the file @file{Makefile} before installing
643 GNATS_SITE = @var{site}
647 to reflect the site where you wish to send PRs by default.
649 @c ---------------------------------------------------------------
655 @c ---------------------------------------------------------------