[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: