Contents|Index|Previous|Next

An Example

Cygnus Solutions in Sunnyvale, CA, uses PRMS and send-pr extensively for their support activities. To support you with GNUPro Toolkit, Cygnus Solutions finds problem tracking to be a crucial part of everyday business. Cygnus Solutions supports the GNU compiling tools (including PRMS and send-pr) over several platforms.

With each shipment of GNUPro Toolkit, 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, customers can communicate their problems to Cygnus Solutions effectively and receive automatic confirmation of receipt as well as notification of changes in the status of their reported problems.

Much of the support mechanism relies on electronic mail.

As an example, let’s pretend you’re a customer of Cygnus Solutions, and that you’re having a problem compiling some software using the GNU C compiler, which Cygnus Solutions supports.

Assume that you’re getting an error in the bifrabulator program wherein the ‘prestidigitation’ routines don’t match with the ‘whatsitsname’.

You’ve made sure you’re following the rules of the program, checked Problems Fixed in This Release in Release Notes for GNUPro Toolkit, to make sure that the bug isn’t already known.

In other words, you’re pretty sure you’ve found a bug.

Your first step is to use send-pr.

It really doesn’t matter whether you use send-pr from the shell or from within Emacs. Indeed, if you 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 your company, Imaginary Software, Ltd., uses GNU software extensively, you’re pretty familiar with Emacs; so from within Emacs you use the keystroke sequence and input, M-X send-pr, which displays the following output on your monitor.


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 category 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.97-97r1

>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:


-----Emacs: *send-pr* (send-pr Fill)----All-----------------------

>Category: other[]


You know from past experience that you need to set certain information into each field, so you compile all the information you know about our problem. you have some sample code which you know should work, even though it doesn’t, so you’ll include that. What follows is the completed PR; you send it using CTRL-C, CTRL-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.97-97r1

>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-970601
>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:


-----Emacs: *send-pr* (send-pr Fill)----All--------------------------


To send the problem report use: C-c C-c

You type C-C, C-C, and off send-pr goes. Now, you depend on Cygnus Solutions to figure out the answer to the problem. Soon afterward, you get the following message from Cygnus Solutions.

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 your receipt that the bug has been accepted and forwarded to the responsible party.

A while later, you 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 Solutions, Mountain View, CA 408 542 9601
#include <std-disclaimer.h>

About the same time, we get another message from Cygnus Solutions.

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 Solutions, Mountain View, CA 415 903 1400
#include <std-disclaimer.h>

The bug has now been analyzed, and Cygnus Solutions is working on a fix.

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 Solutions, Mountain View, CA 408 542 9601
#include <std-disclaimer.h>

And then, you receive another response.

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 Solutions, Mountain View, CA 415 903 1400
#include <std-disclaimer.h>

The bug has gone into feedback status now, until you get the patch, install it and test it. When everything tests well, you 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.