1 @c $FreeBSD: src/gnu/usr.bin/send-pr/doc/send-pr.texi,v 1.2.6.1 2001/03/05 10:44:05 kris Exp $
2 @c $DragonFly: src/gnu/usr.bin/send-pr/doc/Attic/send-pr.texi,v 1.2 2003/06/17 04:25:48 dillon Exp $
4 \input texinfo @c -*-texinfo-*-
5 @setfilename send-pr.info
6 @settitle Reporting Problems Using send-pr
16 * send-pr: (send-pr). Reporting problems--using send-pr
22 Copyright @copyright{} 1993, 1994, 1995 Free Software Foundation, Inc.
24 Permission is granted to make and distribute verbatim copies of
25 this manual provided the copyright notice and this permission notice
26 are preserved on all copies.
29 Permission is granted to process this file through TeX and print the
30 results, provided the printed document carries a copying permission
31 notice identical to this one except for the removal of this paragraph
32 (this paragraph not being relevant to the printed manual).
36 Permission is granted to copy and distribute modified versions of this
37 manual under the conditions for verbatim copying, provided also that
38 the entire resulting derived work is distributed under the terms of a
39 permission notice identical to this one.
41 Permission is granted to copy and distribute translations of this manual
42 into another language, under the above conditions for modified versions.
47 @title Reporting Problems
48 @subtitle Using @code{send-pr}, version @value{VERSION}
49 @subtitle October 1993
50 @author Jeffrey M. Osier
51 @author Cygnus Support
54 @vskip 0pt plus 1filll
56 Copyright @copyright{} 1993, 1994, 1995 Free Software Foundation, Inc.
58 Permission is granted to make and distribute verbatim copies of
59 this manual provided the copyright notice and this permission notice
60 are preserved on all copies.
62 Permission is granted to copy and distribute modified versions of this
63 manual under the conditions for verbatim copying, provided also that
64 the entire resulting derived work is distributed under the terms of a
65 permission notice identical to this one.
67 Permission is granted to copy and distribute translations of this manual
68 into another language, under the above conditions for modified versions.
72 @c ---------------------------------------------------------------
75 @cindex foreword to @code{send-pr}
76 @cindex overview to @code{send-pr}
77 @cindex introduction to @code{send-pr}
79 This manual documents @code{send-pr},
81 version @value{VERSION},
83 which uses electronic mail to submit support questions and problem
84 reports to a central Support Site. No body of work is perfect, and
85 support organizations understand this; @code{send-pr} is designed to
86 allow users who have problems to submit reports of these problems to
87 sites responsible for supporting the products in question, in a defined
88 form which can be read by an electronically managed database.
91 @code{send-pr} is part of a suite of programs known collectively as
92 @sc{gnats}, the @sc{gnu} Problem Report Management System. @sc{gnats}
93 consists of several programs which, used in concert, formulate and
94 partially administer a database of @dfn{Problem Reports}, or @dfn{PRs},
95 at a central Support Site. A PR goes through several states in its
96 lifetime; @sc{gnats} tracks the PR and all information associated with it
97 through each state and finally acts as an archive for PRs which have
100 Because @code{send-pr} exists as a shell (@file{/bin/sh}) script and as
101 an Elisp file for use with @sc{gnu} Emacs, it can be used from any
102 machine on your network which can run a shell script and/or Emacs.
104 In general, you can use any editor and mailer to submit valid Problem
105 Reports, as long as the format required by @sc{gnats} is preserved.
106 @code{send-pr} automates the process, however, and ensures that certain
107 fields necessary for automatic processing are present. @code{send-pr}
108 is strongly recommended for all initial problem-oriented correspondence
109 with your Support Site. The organization you submit Problem Reports to
110 supplies an address to which further information can be sent; the person
111 responsible for the category of the problem you report contacts you
115 * send-pr in detail:: Details about send-pr and GNATS
116 * Invoking send-pr:: Editing and sending PRs
117 * An Example:: A working example
118 * Installing send-pr:: Installing send-pr on your system
122 @node send-pr in detail
123 @chapter Details about send-pr and GNATS
125 @cindex details about @code{send-pr}
126 @cindex Problem Reports
127 A @dfn{Problem Report} is a message that describes a problem you are
128 having with a body of work. @code{send-pr} organizes this message into
129 a form which can be understood and automatically processed by @sc{gnats},
130 the @sc{gnu} Problem Report Management System. A Problem Report is
131 organized into @dfn{fields} which contain data describing you, your
132 organization, and the problem you are announcing (@pxref{Fields,,Problem
133 Report format}). Problem Reports go through several defined states in
134 their lifetimes, from @dfn{open} to @dfn{closed} (@pxref{States,,States
135 of Problem Reports}).
138 * States:: States of Problem Reports
139 * Fields:: Problem Report format
146 @node Invoking send-pr
147 @chapter Editing and sending PRs
148 @cindex editing and sending PRs
150 @cindex invoking send-pr
151 @cindex using send-pr
152 @cindex generating new PRs
154 @include s-usage.texi
160 @cindex Cygnus Solutions
161 @cindex @sc{gnu} software support
162 Cygnus Solutions in Sunnyvale, CA, uses @sc{gnats} and @code{send-pr}
163 extensively for their support activities. As a support company, Cygnus
164 finds problem tracking to be a crucial part of everyday business.
165 Cygnus supports the @sc{gnu} compiling tools (including @sc{gnats} and
166 @code{send-pr}) over several many platforms
168 With each shipment of the Cygnus Solutions Developer's Kit, customers
169 receive the latest version of @code{send-pr}, which contains an
170 up-to-date listing of valid categories (values for the @code{>Category:}
171 field). Using these tools, Cygnus' customers can communicate their
172 problems to Cygnus effectively and receive automatic confirmation of
173 receipt as well as notification of changes in the status of their
174 reported problems. Much of Cygnus' support mechanism relies on
177 As an example, let's pretend we're a customer of Cygnus Solutions, and
178 that we're having a problem compiling some of our software using the
179 @sc{gnu} C compiler, which Cygnus supports.
181 Assume that we're getting an error in our @code{bifrabulator} program
182 wherein the @samp{prestidigitation} routines don't match with the
183 @samp{whatsitsname}. We've made sure we're following the rules of the
184 program and checked the Release Notes from Cygnus and found that the bug
185 isn't already known. In other words, we're pretty sure we've found a
188 @cindex Imaginary Software, Ltd.
189 Our first step is to call @code{send-pr}. It really doesn't matter
190 whether we use @code{send-pr} from the shell or from within Emacs.
191 Indeed, if we use Emacs as a primary editor, calling @code{send-pr} from
192 the shell is likely to start @code{send-pr} in an Emacs buffer anyway.
193 So, since our company, @emph{Imaginary Software, Ltd.}, uses @sc{gnu}
194 software extensively, we're pretty familiar with Emacs, so from within
200 and we're greeted with the following screen:
202 @cindex default PR template
203 @cindex example of a default template
204 @cindex blank PR template
205 @cindex @code{bifrabulator}
208 SEND-PR: -*- text -*-
209 SEND-PR: Lines starting with `SEND-PR' will be removed
210 SEND-PR: automatically as well as all comments (the text
211 SEND-PR: below enclosed in `<' and `>').
212 SEND-PR: Please consult the manual if you are not sure
213 SEND-PR: how to fill out a problem report.
215 SEND-PR: Choose from the following categories:
217 SEND-PR: bfd binutils bison
218 SEND-PR: byacc clib config cvs diff
219 SEND-PR: doc emacs flex g++ gas
220 SEND-PR: gcc gdb glob gprof grep
221 SEND-PR: info ispell kerberos ld libg++
222 SEND-PR: libiberty make makeinfo mas newlib
223 SEND-PR: other patch rcs readline send-pr
224 SEND-PR: test texindex texinfo texinfo.tex
225 SEND-PR: bifrabulator <---@emph{note: this one is fake}
227 To: cygnus-bugs@@cygnus.com
229 From: jeffrey@@imaginary.com
230 Reply-To: jeffrey@@imaginary.com
231 X-send-pr-version: send-pr @value{VERSION}
233 >Submitter-Id: imaginary
234 >Originator: Jeffrey Osier
236 Imaginary Software, Ltd.
237 >Confidential: <[ yes | no ] (one line)>
238 >Synopsis: <synopsis of the problem (one line)>
239 >Severity: <[ non-critical | serious | critical ] (one line)>
240 >Priority: <[ low | medium | high ] (one line)>
241 >Category: <name of the product (one line)>
242 >Class: <[sw-bug|doc-bug|change-request|support](oneline)>
243 >Release: <release number or tag (one line)>
245 <machine, os, target, libraries (multiple lines)>
246 System: SunOS imaginary.com 4.1.1 1 sun4
250 <precise description of the problem (multiple lines)>
252 <code/input/activities to reproduce (multiple lines)>
257 -----Emacs: *send-pr* (send-pr Fill)----All------------------
265 We know from past experience that we need to set certain information into
266 each field, so we compile all the information we know about our problem.
267 We have some sample code which we know should work, even though it
268 doesn't, so we'll include that. Below is the completed PR; we send this
269 using @kbd{C-c C-c}. (The comments have been truncated).
271 @cindex completed Problem Report
272 @cindex example of a completed PR
275 SEND-PR: Lines starting with `SEND-PR' will be removed
276 SEND-PR: automatically as well as all comments (the text
279 To: cygnus-bugs@@cygnus.com
280 Subject: bifrabulator routines don't match
281 From: jeffrey@@imaginary.com
282 Reply-To: jeffrey@@imaginary.com
283 X-send-pr-version: send-pr @value{VERSION}
285 >Submitter-Id: imaginary
286 >Originator: Jeffrey Osier
288 Imaginary Software, Ltd.
290 >Synopsis: bifrabulator routines don't match
293 >Category: bifrabulator
295 >Release: progressive-930101
297 System: SunOS imaginary.com 4.1.1 1 sun4
298 Architecture: sun4 (SPARC)
301 the following code I fed into the bifrabulator came back
302 with a strange error. apparently, the prestidigitation
303 routine doesn't match with the whatsitsname in all cases.
306 call the bifrabulator on the following code.
307 @emph{code sample@dots{}}
313 -----Emacs: *send-pr* (send-pr Fill)----All------------------
317 To send the problem report use: C-c C-c
321 We type @kbd{C-c C-c}, and off it goes. Now, we depend on Cygnus
322 Support to figure out the answer to our problem.
324 Soon afterward, we get the following message from Cygnus:
328 From: gnats (GNATS management)
330 Reply-To: hacker@@cygnus.com
331 To: jeffrey@@imaginary.com
332 Subject: Re: bifrabulator/1425: routines don't match
334 Thank you very much for your problem report.
335 It has the internal identification: g++/1425.
336 The individual assigned to look at your bug is: hacker
339 Category: bifrabulator
341 Synopsis: bifrabulator routines don't match
342 Arrival-Date: Sat Feb 30 03:12:55 1993
347 This is our receipt that the bug has been accepted and forwarded to the
351 A while later, we get the analysis:
355 To: jeffrey@@imaginary.com
356 From: hacker@@cygnus.com
357 Subject: Re: bifrabulator/1425: routines don't match
358 Reply-To: hacker@@cygnus.com
360 Got your message, Jeff. It seems that the bifrabulator was
361 confusing the prestidigitation routines with the realitychecker
362 when lexically parsing the whatsitsname.
364 I'm working on robustisizing the bifrabulator now.
366 How about lunch next week?
369 Cygnus Solutions, Sunnyvale, CA 408 542 9600
370 #include <std-disclaimer.h>
375 About the same time, we get another message from Cygnus.
377 @cindex state change example
378 @cindex example of a state change
381 From: hacker@@cygnus.com
382 To: jeffrey@@imaginary.com
383 Subject: Re: bifrabulator/1425: doesn't match prestidig
384 Reply-To: hacker@@cygnus.com
387 `F.B. Hacker' changed the state to `analyzed'.
389 State-Changed-From-To: open-analyzed
390 State-Changed-By: hacker
391 State-Changed-When: Fri Feb 31 1993 08:59:16 1993
393 figured out the problem, working on a patch this afternoon
396 Cygnus Solutions, Sunnyvale, CA 408 542 9600
397 #include <std-disclaimer.h>
402 The bug has now been analyzed, and Cygnus is working on a solution.
405 Sometime later, we get more mail from F.B.:
409 To: jeffrey@@imaginary.com
410 From: hacker@@cygnus.com
411 Subject: Re: bifrabulator/1425: routines don't match
412 Reply-To: hacker@@cygnus.com
414 There's a patch now that you can ftp over and check out.
416 Hey, that joke you sent me was great! The one about the
417 strings walking into a bar... my boss laughed for an hour!
420 Cygnus Solutions, Sunnyvale, CA 408 542 9600
421 #include <std-disclaimer.h>
427 From: hacker@@cygnus.com
428 To: jeffrey@@imaginary.com
429 Subject: Re: bifrabulator/1425: doesn't match prestidig
430 Reply-To: hacker@@cygnus.com
433 `F.B. Hacker' changed the state to `feedback'.
435 State-Changed-From-To: analyzed-feedback
436 State-Changed-By: hacker
437 State-Changed-When: Fri Feb 31 1993 23:43:16 1993
439 got the patch finished, notified Jeff at Imaginary Software
442 Cygnus Solutions, Sunnyvale, CA 408 542 9600
443 #include <std-disclaimer.h>
448 The bug has gone into @dfn{feedback} status now, until we get the patch,
449 install it and test it. When everything tests well, we can mail F.B.
450 back and tell him the bug's been fixed, and he can change the state of
451 the PR from @dfn{feedback} to @dfn{closed}.
453 Following is a list of valid @samp{>Category:} entries that are
460 @c FIXME - is this list up to date?
463 @node Installing send-pr
464 @appendix Installing @code{send-pr} on your system
467 If you receive @code{send-pr} as part of a larger software distribution,
468 it probably gets installed when the full distribution is installed. If
469 you are using @sc{gnats} at your site as well, you must decide where
470 @code{send-pr} sends Problem Reports by default; see @ref{default site,,
471 Setting a default @var{site}}.
474 * installation:: installing `send-pr' by itself
475 * default site:: setting a default site
479 @section Installing @code{send-pr} by itself
480 @cindex installation procedure
482 Install @code{send-pr} by following these steps (you may need
483 @code{root} access in order to change the @file{aliases} file and to
484 install @code{send-pr}):
488 Unpack the distribution into a directory which we refer to as
492 Edit the file @file{Makefile} to reflect local conventions.
493 Specifically, you should edit the variable @samp{prefix} to alter the
494 installation location. The default is @file{/usr/local}. All files are
495 installed under @samp{prefix} (see below).
499 make all install [ info ] [ install-info ] [ clean ]
503 The targets mean the following:
507 Builds @code{send-pr} and @code{install-sid}
510 Installs the following:
515 into @file{@var{prefix}/bin}
518 into @file{@var{prefix}/man/man1}
521 the list of valid @var{categories} for the Support Site from which you
522 received @code{send-pr}, installed as
523 @w{@file{@var{prefix}/share/gnats/@var{site}}}
526 into @w{@file{@var{prefix}/share/emacs/lisp}}@footnote{If your main Emacs
527 lisp repository is in a different directory from this, substitute that
528 directory for @w{@file{@var{prefix}/share/emacs/lisp}}.}
531 @item info (@emph{optional})
532 Builds @file{send-pr.info} from @file{send-pr.texi}@*
533 @c FIXME - is this still true?
534 (@file{send-pr.info} is included with this distribution)
536 @item install-info (@emph{optional})
537 Installs @file{send-pr.info} into @w{@file{@var{prefix}/info}}
539 @item clean (@emph{optional})
540 Removes all intermediary build files that can be rebuilt from source
548 install-sid @var{your-sid}
552 where @var{your-sid} is the identification code you received with
553 @w{@code{send-pr}}. @code{send-pr} automatically inserts this value
554 into the template field @samp{>Submitter-Id:}. If you've downloaded
555 @code{send-pr} from the Net, use @samp{net} for this value.
558 Place the following line in
559 @w{@file{@var{prefix}/share/emacs/lisp/default.el}}, or instruct your
560 users to place the following line in their @file{.emacs} files:
563 (autoload 'send-pr "send-pr" "Submit a Problem Report." t)
567 Create a mail alias for the Support Site from which you received
568 @code{send-pr}, and for every site with which you wish to use
569 @code{send-pr} to communicate. Each alias must have a suffix of
570 @samp{-gnats}. The Support Site(s) will provide the correct addresses
571 where these aliases should point. For instance, edit your mail aliases
572 file to contain something like:
575 # support sites; for use with send-pr
576 cygnus-gnats: bugs@@cygnus.com # Cygnus Solutions
577 bumblebee-gnats: bumblebugs@@bumblebee.com # Bumblebee Inc.
578 mycompany-gnats: bugs@@my.company.com (@emph{if you use @sc{gnats} locally})
581 @code{send-pr} automatically searches for these aliases when you type
586 send-pr @var{site}@dots{}
590 @code{send-pr} also uses @var{site} to determine the categories of
591 problems accepted by the site in question by looking in
594 @var{prefix}/share/gnats/@var{site}
600 @section Setting a default @var{site}
601 @cindex default @var{site}
602 @cindex setting a default @var{site}
604 @code{send-pr} is capable of sending Problem Reports to any number of
605 Support Sites, using mail aliases which have @samp{-gnats} appended them.
606 @code{send-pr} automatically appends the suffix, so that when you type
613 the Problem Report goes to the address noted in the @file{aliases} file
614 as @w{@samp{@var{site}-gnats}}. You can do this in the Emacs version of
615 @code{send-pr} by invoking the program with
622 You are prompted for @var{site}.
624 @var{site} is also used to error-check the @samp{>Category:} field, as a
625 precaution against sending mistaken information (and against sending
626 information to the wrong site).
628 You may also simply type
635 from the shell (or @w{@samp{M-x send-pr}} in Emacs), and the Problem
636 Report you generate will be sent to the @var{site}, which is usually the
637 site from which you received your distribution of @w{@code{send-pr}}.
638 If you use @sc{gnats} at your own organization, the default is usually
639 your local address for reporting problems.
641 To change this, simply edit the file @file{Makefile} before installing
645 GNATS_SITE = @var{site}
649 to reflect the site where you wish to send PRs by default.
651 @c ---------------------------------------------------------------
657 @c ---------------------------------------------------------------