Bug#139936: BTS bug 'owner' code
Package: debbugs
Severity: wishlist
An engineer in the HP Linux Systems Operation implemented the following simple
addition to the instances of debbugs we're running for our projects. One
public instance is visible at bugs.parisc-linux.org.
With this change, it is possible to assign an "owner" to each bug. This is
valuable when there is a single "package" in a BTS instance with multiple
people working on it, such as the kernel. An engineer who accepts
responsibility for a bug can tag it to show that they've taken ownership of
resolving that bug... and who is working on what is clearly visible when the
lists of open bugs are reviewed.
It would be nice if this or some equivalent functionality could show up in
a future release of the debbugs package.
To use this feature, one sends mail to the control interface, with body lines
of the following form:
owner 81 Big Bird <big_bird@sesame_street.edu>
Enjoy!
Bdale
diff -u -ur /usr/lib/debbugs.orig/db2html /usr/lib/debbugs/db2html
--- /usr/lib/debbugs.orig/db2html Sat Oct 7 11:27:13 2000
+++ /usr/lib/debbugs/db2html Sat Mar 23 17:01:08 2002
@@ -133,6 +133,7 @@
chomp($s_forwarded= <S>);
chomp($s_mergedwith= <S>);
chomp($s_severity= <S>);
+ chomp($s_owner= <S>);
$_= $s_package; y/A-Z/a-z/; $_= $` if m/[^-+._a-z0-9()]/;
$tpack= $_;
if ($s_severity eq '' || $s_severity eq 'normal')
@@ -154,6 +155,8 @@
if length($s_package);
$indexentry .= $showseverity;
$indexentry .= "Reported by: ".&sani($s_originator);
+ $indexentry .= ", Assigned to: ".&sani($s_owner)
+ if length($s_owner);
$indexentry .= ";\nKeywords: ".&sani($s_keywords)
if length($s_keywords);
$linkto= $ref; $linkto =~ s,^..,$&/$&,;
diff -u -ur /usr/lib/debbugs.orig/errorlib /usr/lib/debbugs/errorlib
--- /usr/lib/debbugs.orig/errorlib Wed Dec 1 11:04:01 1999
+++ /usr/lib/debbugs/errorlib Sat Mar 23 17:01:08 2002
@@ -34,6 +34,7 @@
chop($s_forwarded= <S>);
chop($s_mergedwith= <S>);
chop($s_severity= <S>);
+ chop($s_owner= <S>);
close(S);
$s_severity = 'normal' if $s_severity eq '';
return 1;
diff -u -ur /usr/lib/debbugs.orig/process /usr/lib/debbugs/process
--- /usr/lib/debbugs.orig/process Wed Nov 22 03:02:51 2000
+++ /usr/lib/debbugs/process Sat Mar 23 17:01:08 2002
@@ -261,7 +261,7 @@
$s_forwarded= $set_forwarded if defined($set_forwarded);
&overwrite("db/$ref.status",
"$s_originator\n$s_date\n$s_subject\n$s_msgid\n".
- "$s_package\n$s_keywords\n$s_done\n$s_forwarded\n$s_mergedwith\n$s_severity\n");
+ "$s_package\n$s_keywords\n$s_done\n$s_forwarded\n$s_mergedwith\n$s_severity\n$s_owner\n");
open(O,"db/$ref.report") || &quit("read original report: $!");
$x= join('',<O>); close(O);
if ($codeletter eq 'F')
@@ -473,7 +473,7 @@
&overwrite("db/$ref.log",'');
&overwrite("db/$ref.status",
"$replyto\n$intdate\n$subject\n$header{'message-id'}\n".
- "$s_package\n$s_keywords\n\n\n\n$s_severity\n");
+ "$s_package\n$s_keywords\n\n\n\n$s_severity\n$s_owner\n");
&overwrite("db/$ref.report",
join("\n",@msg)."\n");
}
diff -u -ur /usr/lib/debbugs.orig/service /usr/lib/debbugs/service
--- /usr/lib/debbugs.orig/service Sat Jan 27 14:46:27 2001
+++ /usr/lib/debbugs/service Sat Mar 23 17:01:08 2002
@@ -476,6 +476,26 @@
&transcript("$action\n\n");
}
&endmerge;
+ } elsif (m/^owner\s+\#?(\d+)\s+(\S.*\S)$/i) {
+ $ok++;
+ $ref= $1; $newowner= $2;
+ if (&setbug) {
+ if (length($s_owner)) {
+ $action= "Owner changed from $s_owner to $newowner.";
+ } else {
+ $action= "Noted your statement that $gBug has been assigned to $newowner.";
+ }
+ if (length($s_done)) {
+ $extramessage= "(By the way, this $gBug is currently marked as done.)\n";
+ }
+ do {
+ &addmaintainers($s_package);
+ if (length($gFowardList)>0 && length($gListDomain)>0) {
+ &addccaddress("$gFowardList\@$gListDomain");
+ }
+ $s_owner= $newowner;
+ } while (&getnextbug);
+ }
} else {
&transcript("Unknown command or malformed arguments to command.\n\n");
if (++$unknowns >= 5) {
@@ -764,7 +784,8 @@
"$s_done\n".
"$s_forwarded\n".
"$s_mergedwith\n".
- "$s_severity\n") || &quit("writing db/$ref.status.new: $!");
+ "$s_severity\n".
+ "$s_owner\n") || &quit("writing db/$ref.status.new: $!");
close(S) || &quit("closing db/$ref.status.new: $!");
rename("db/$ref.status.new","db/$ref.status") ||
&quit("installing new db/$ref.status: $!");
--
To UNSUBSCRIBE, email to debian-debbugs-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: