send-pr
extensively for their support activities. As a support company, Cygnus
finds problem tracking to be a crucial part of everyday business.
Cygnus supports the GNU compiling tools (including PRMS and
send-pr
) over several many platforms
With each shipment of the Cygnus Support Developer's Kit, customers
receive the latest version of send-pr
, which contains an
up-to-date listing of valid categories (values for the >Category:
field). Using these tools, Cygnus' customers can communicate their
problems to Cygnus effectively and receive automatic confirmation of
receipt as well as notification of changes in the status of their
reported problems. Much of Cygnus' support mechanism relies on
electronic mail.
As an example, let's pretend we're a customer of Cygnus Support, and that we're having a problem compiling some of our software using the GNU C compiler, which Cygnus supports.
Assume that we're getting an error in our bifrabulator
program
wherein the `prestidigitation' routines don't match with the
`whatsitsname'. We've made sure we're following the rules of the
program and checked the Release Notes from Cygnus and found that the bug
isn't already known. In other words, we're pretty sure we've found a
bug.
Our first step is to call send-pr
. It really doesn't matter
whether we use send-pr
from the shell or from within Emacs.
Indeed, if we use Emacs as a primary editor, calling send-pr
from
the shell is likely to start send-pr
in an Emacs buffer anyway.
So, since our company, Imaginary Software, Ltd., uses GNU
software extensively, we're pretty familiar with Emacs, so from within
Emacs we type
M-x send-prand we're greeted with the following screen:
SEND-PR: -*- text -*- SEND-PR: Lines starting with `SEND-PR' will be removed SEND-PR: automatically as well as all comments (the text SEND-PR: below enclosed in `<' and `>'). SEND-PR: Please consult the manual if you are not sure SEND-PR: how to fill out a problem report. SEND-PR: SEND-PR: Choose from the following categories: SEND-PR: SEND-PR: bfd binutils bison SEND-PR: byacc clib config cvs diff SEND-PR: doc emacs flex g++ gas SEND-PR: gcc gdb glob gprof grep SEND-PR: info ispell kerberos ld libg++ SEND-PR: libiberty make makeinfo mas newlib SEND-PR: other patch rcs readline send-pr SEND-PR: test texindex texinfo texinfo.tex SEND-PR: bifrabulator <---note: this one is fake SEND-PR: To: cygnus-bugs@cygnus.com Subject: From: jeffrey@imaginary.com Reply-To: jeffrey@imaginary.com X-send-pr-version: send-pr 3.95-95q4 >Submitter-Id: imaginary >Originator: Jeffrey Osier >Organization: Imaginary Software, Ltd. >Confidential: <[ yes | no ] (one line)> >Synopsis: <synopsis of the problem (one line)> >Severity: <[ non-critical | serious | critical ] (one line)> >Priority: <[ low | medium | high ] (one line)> >Category: <name of the product (one line)> >Class: <[sw-bug|doc-bug|change-request|support](oneline)> >Release: <release number or tag (one line)> >Environment: <machine, os, target, libraries (multiple lines)> System: SunOS imaginary.com 4.1.1 1 sun4 Architecture: sun4 >Description: <precise description of the problem (multiple lines)> >How-To-Repeat: <code/input/activities to reproduce (multiple lines)> >Fix: @hrule -----Emacs: *send-pr* (send-pr Fill)----All------------------ @hrule >Category: other[]We know from past experience that we need to set certain information into each field, so we compile all the information we know about our problem. We have some sample code which we know should work, even though it doesn't, so we'll include that. Below is the completed PR; we send this using C-c C-c. (The comments have been truncated).
SEND-PR: Lines starting with `SEND-PR' will be removed SEND-PR: automatically as well as all comments (the text SEND-PR: ... SEND-PR: To: cygnus-bugs@cygnus.com Subject: bifrabulator routines don't match From: jeffrey@imaginary.com Reply-To: jeffrey@imaginary.com X-send-pr-version: send-pr 3.95-95q4 >Submitter-Id: imaginary >Originator: Jeffrey Osier >Organization: Imaginary Software, Ltd. >Confidential: no >Synopsis: bifrabulator routines don't match >Severity: serious >Priority: medium >Category: bifrabulator >Class: sw-bug >Release: progressive-930101 >Environment: System: SunOS imaginary.com 4.1.1 1 sun4 Architecture: sun4 (SPARC) >Description: the following code I fed into the bifrabulator came back with a strange error. apparently, the prestidigitation routine doesn't match with the whatsitsname in all cases. >How-To-Repeat: call the bifrabulator on the following code. code sample... >Fix: @hrule -----Emacs: *send-pr* (send-pr Fill)----All------------------ @hrule To send the problem report use: C-c C-c
We type C-c C-c, and off it goes. Now, we depend on Cygnus Support to figure out the answer to our problem.
Soon afterward, we get the following message from Cygnus:
From: prms (PRMS management) Sender: prms-admin Reply-To: hacker@cygnus.com To: jeffrey@imaginary.com Subject: Re: bifrabulator/1425: routines don't match Thank you very much for your problem report. It has the internal identification: g++/1425. The individual assigned to look at your bug is: hacker (F.B. Hacker) Category: bifrabulator Responsible: hacker Synopsis: bifrabulator routines don't match Arrival-Date: Sat Feb 30 03:12:55 1993
This is our receipt that the bug has been accepted and forwarded to the responsible party.
A while later, we get the analysis:
To: jeffrey@imaginary.com From: hacker@cygnus.com Subject: Re: bifrabulator/1425: routines don't match Reply-To: hacker@cygnus.com Got your message, Jeff. It seems that the bifrabulator was confusing the prestidigitation routines with the realitychecker when lexically parsing the whatsitsname. I'm working on robustisizing the bifrabulator now. How about lunch next week? -- F.B. Hacker Cygnus Support, Mountain View, CA 415 903 1400 #include <std-disclaimer.h>
About the same time, we get another message from Cygnus.
From: hacker@cygnus.com To: jeffrey@imaginary.com Subject: Re: bifrabulator/1425: doesn't match prestidig Reply-To: hacker@cygnus.com `F.B. Hacker' changed the state to `analyzed'. State-Changed-From-To: open-analyzed State-Changed-By: hacker State-Changed-When: Fri Feb 31 1993 08:59:16 1993 State-Changed-Why: figured out the problem, working on a patch this afternoon -- F.B. Hacker Cygnus Support, Mountain View, CA 415 903 1400 #include <std-disclaimer.h>
The bug has now been analyzed, and Cygnus is working on a solution.
Sometime later, we get more mail from F.B.:
To: jeffrey@imaginary.com From: hacker@cygnus.com Subject: Re: bifrabulator/1425: routines don't match Reply-To: hacker@cygnus.com There's a patch now that you can ftp over and check out. Hey, that joke you sent me was great! The one about the strings walking into a bar... my boss laughed for an hour! -- F.B. Hacker Cygnus Support, Mountain View, CA 415 903 1400 #include <std-disclaimer.h>
From: hacker@cygnus.com To: jeffrey@imaginary.com Subject: Re: bifrabulator/1425: doesn't match prestidig Reply-To: hacker@cygnus.com `F.B. Hacker' changed the state to `feedback'. State-Changed-From-To: analyzed-feedback State-Changed-By: hacker State-Changed-When: Fri Feb 31 1993 23:43:16 1993 State-Changed-Why: got the patch finished, notified Jeff at Imaginary Software -- F.B. Hacker Cygnus Support, Mountain View, CA 415 903 1400 #include <std-disclaimer.h>
The bug has gone into feedback status now, until we get the patch, install it and test it. When everything tests well, we can mail F.B. back and tell him the bug's been fixed, and he can change the state of the PR from feedback to closed.
Following is a list of valid `>Category:' entries that are supported by Cygnus.