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