BUG REPORTING A recipe used to install an application should offer the "report" target. This is the standard way for a user to report a problem. The recipe should then help the user with reporting a problem as much as possible. An example is to send the developer an e-mail. All useful information is put in the message by the recipe, so that the user only has to fill in his specific problem. Example: report: tmpfile = `tempfname()` :print >$tmpfile program version: $VERSION :print >>$tmpfile system type: `os.name` @if os.name == "posix": :print >>$tmpfile " " `os.uname()` :do email {subject = 'problem in foobar'} {to = bugs@foobar.org} {edit} {remove} $tmpfile When a web form is to be filled in, give the user hints about what information to fill in certain fields and start a browser on the right location. Example: report: :do view {async} http://www.foo.org/bugreport/ tmpfile = `tempfname()` :print >$tmpfile use this information in the bug report: :print >>$tmpfile program version: $VERSION :print >>$tmpfile system type: `os.name` :do view {remove} $tmpfile BUG FIXING One a bug has been fixed, the developer needs to update the related bug report. The "tracker" target is the standard way for a developer to get to the place where the status of the bug report can be changed. Since trackers work in many different ways the recipe has to specify the commands. Example: tracker: :do view {async} http://www.foo.org/tracker?assigned_to=$USER This is very primitive. The developer still has to locate the bug report and change the status and add remarks. The above example at least lists the bug reports for the current user. |