status-report-scripts parseBZbugList,1.7,1.8

Christian Iseli (c4chris) fedora-extras-commits at redhat.com
Wed Apr 19 09:55:26 UTC 2006


Author: c4chris

Update of /cvs/fedora/status-report-scripts
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv1520

Modified Files:
	parseBZbugList 
Log Message:
Change output for wiki.


Index: parseBZbugList
===================================================================
RCS file: /cvs/fedora/status-report-scripts/parseBZbugList,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- parseBZbugList	19 Apr 2006 09:54:23 -0000	1.7
+++ parseBZbugList	19 Apr 2006 09:55:23 -0000	1.8
@@ -36,6 +36,13 @@
 my %NAME;
 my %OWN;
 my %DISCARD;
+my %PKG_LIST;
+my %BUG_LIST;
+my %OWNER_LIST;
+my %COUNT_LIST;
+my %OWNER_CNT;
+my %BZOWN_CNT;
+my %BZREV_CNT;
 if (defined $opt{"bzid"}) {
   local *IN;
   open IN, $opt{"bzid"} or die "Couldn't open $opt{'bzid'} : $!";
@@ -117,6 +124,9 @@
   $F[2] = ParseDate($F[2]);
   my @B = split /,/, $F[7];
   next if $F[8] =~ /TESTING-BUGSPAM/;
+  $F[9] = $F[8];
+  $F[9] =~ s/^["]+//;
+  $F[9] =~ s/["]+$//;
   if (defined $NAME{$F[0]}) {
     $F[8] = $NAME{$F[0]};
   } else {
@@ -156,31 +166,31 @@
     }
   }
 }
-print "=== About owners file ===\n\n";
 &checkOwners;
 my $fourDaysAgo = DateCalc("4 days ago", "today");
 my $fourWeeksAgo = DateCalc("4 weeks ago", "today");
 my $eightWeeksAgo = DateCalc("8 weeks ago", "today");
-print "\n\n=== About FE-ACCEPT packages ===\n";
 &checkAcceptClosed(\%BZA);
 &checkAcceptOpen(\%BZA);
-print "\n\n=== About FE-REVIEW packages ===\n";
 &countOpen(\%BZR, "FE-REVIEW");
 &checkNotClosed(\%BZR, "FE-REVIEW");
 &checkLowActivity(\%BZR, "FE-REVIEW");
-print "\n\n=== About FE-NEW packages ===\n";
 &countOpen(\%BZN, "FE-NEW");
 &checkNotClosed(\%BZN, "FE-NEW");
 &checkLowActivity(\%BZN, "FE-NEW");
 #&checkNoActivity(\%BZN, "FE-NEW");
-print "\n\n=== About FE-NEEDSPONSOR packages ===\n";
 &countOpen(\%BZS, "FE-NEEDSPONSOR");
 &checkLowActivity(\%BZS, "FE-NEEDSPONSOR");
+print "[[TableOfContents]]\n\n= FE Package Status of <date> =\n";
+&displayOwnersWiki;
+&displayAcceptWiki(\%BZA);
+&displayNewReviewWiki(\%BZR, "FE-REVIEW");
+&displayNewReviewWiki(\%BZN, "FE-NEW");
+&displayNewReviewWiki(\%BZS, "FE-NEEDSPONSOR");
 
 exit 0;
 
 sub checkOwners {
-  my %O;
   my $orphan = 0;
   my $cnt = 0;
   my @NP;
@@ -196,7 +206,7 @@
       push @OE, $k if defined $EXTRAS{$k};
       next;
     }
-    $O{$$a[3]} += 1;
+    $OWNER_CNT{$$a[3]} += 1;
     unless (defined $EXTRAS{$k}) {
       if (defined $CORE{$k}) {
 	push @NPC, $k;
@@ -209,56 +219,94 @@
       }
     }
   }
-  print "We have $cnt extras packages in owners file.\n";
-  print "There are $orphan orphans.\n";
-  my @TO = sort {$O{$b} <=> $O{$a}} keys %O;
-  print "\nTop 10 package owners:\n";
+  my @TO = sort {$OWNER_CNT{$b} <=> $OWNER_CNT{$a}} keys %OWNER_CNT;
+  $COUNT_LIST{"owner"} = $cnt;
+  $COUNT_LIST{"orphan"} = $orphan;
+  $OWNER_LIST{"package"} = \@TO;
+  $PKG_LIST{"NotDevelNotRel"} = \@NP;
+  $PKG_LIST{"NotDevel"} = \@NP_R;
+  $PKG_LIST{"OrphanDevel"} = \@OE;
+  $PKG_LIST{"MovedToCore"} = \@NPC;
+}
+
+sub displayOwnersWiki {
+  print "== About owners file ==\n\n";
+  print "=== Package count ===\n\n";
+  print "We have $COUNT_LIST{'owner'} extras packages in owners file.[[BR]]\n";
+  print "There are $COUNT_LIST{'orphan'} orphans.\n";
+  print "\n=== Top 10 package owners ===\n";
+  my $a = $OWNER_LIST{"package"};
+  &displayOwnerCntWiki($a, \%OWNER_CNT);
+  print "\n=== Packages not present in the development repo ===\n";
+  $a = $PKG_LIST{"NotDevelNotRel"};
+  if ($#$a >= 0) {
+    my $cnt = $#$a + 1;
+    print "\nWe have $cnt packages not available in extras devel or release:\n";
+    &displayPkgListByOwnerWiki($a);
+  }
+  $a = $PKG_LIST{"NotDevel"};
+  if ($#$a >= 0) {
+    my $cnt = $#$a + 1;
+    print "\nWe have $cnt packages not available in extras devel ";
+    print "but present in release:\n";
+    &displayPkgListByOwnerWiki($a);
+  }
+  $a = $PKG_LIST{"OrphanDevel"};
+  print "\n=== Orphaned packages present in the development repo ===\n";
+  if ($#$a >= 0) {
+    my $cnt = $#$a + 1;
+    print "\nWe have $cnt orphaned packages available in extras devel:{{{\n";
+    print &toLine(join(" ", sort @$a)), "\n";
+    print "}}}\n";
+  }
+  print "\n=== FE packages that moved to Fedora Core ===\n";
+  $a = $PKG_LIST{"MovedToCore"};
+  if ($#$a >= 0) {
+    my $cnt = $#$a + 1;
+    print "\nWe have $cnt packages that moved to core:{{{\n";
+    print &toLine(join(" ", sort @$a)), "\n";
+    print "}}}\n";
+  }
+}
+
+sub displayOwnerCntWiki {
+  my ($a, $c) = @_;
   for my $i (0 .. 9) {
-    my $n = $TO[$i];
+    my $n = $$a[$i];
+    $n =~ s/["]//g;
     $n =~ s/\@/ at /;
     $n =~ s/\./ dot /g;
-    printf "%-50s: %d\n", $n, $O{$TO[$i]};
+    print "||$n||$c->{$$a[$i]}||\n";
   }
-  if ($#NP >= 0) {
-    $cnt = $#NP + 1;
-    print "\nWe have $cnt packages not available in extras devel or release:\n";
-    foreach my $p (sort @NP) {
-      my $a = $OWN{$p};
-      my ($owner) = $$a[3] =~ /^([^@]+)/;
-      printf "%-40s %s\n", $p, $owner;
+}
+
+sub displayPkgListByOwnerWiki {
+  my ($a) = @_;
+  my %PO;
+  foreach my $p (@$a) {
+    my $oa = $OWN{$p};
+    my $owner = $$oa[3];
+    my $e = $PO{$owner};
+    if (defined $e) {
+      push @$e, $p;
+    } else {
+      $PO{$owner} = [ $p ];
     }
   }
-  if ($#NP_R >= 0) {
-    $cnt = $#NP_R + 1;
-    print "\nWe have $cnt packages not available in extras devel ";
-    print "but present in release:\n";
-    foreach my $p (sort @NP_R) {
-      my $a = $OWN{$p};
-      my ($owner) = $$a[3] =~ /^([^@]+)/;
-      printf "%-40s %s\n", $p, $owner;
+  foreach my $owner (sort(keys %PO)) {
+    my $e = $PO{$owner};
+    $owner =~ s/\@/ at /;
+    $owner =~ s/\./ dot /g;
+    foreach my $p (@$e) {
+      print "||$owner||`$p`||\n";
     }
   }
-  if ($#OE >= 0) {
-    $cnt = $#OE + 1;
-    print "\nWe have $cnt orphaned packages available in extras devel:\n";
-    print &toLine(join(" ", sort @OE)), "\n";
-  }
-  if ($#NPC >= 0) {
-    $cnt = $#NPC + 1;
-    print "\nWe have $cnt packages that moved to core:\n";
-    print &toLine(join(" ", sort @NPC)), "\n";
-  }
 }
 
 sub checkAcceptClosed {
   my ($BZ) = @_;
   my @BL;
   my @BLO;
-  my %O;
-  my %R;
-  my $cnt = 0;
-  my $miss = 0;
-  my $missO = 0;
   foreach my $b (sort(keys %$BZ)) {
     my $a = $BZ->{$b};
     next unless $$a[5] eq "\"CLOSED\"";
@@ -280,57 +328,67 @@
       $pkg = lcfirst $$a[8];
     }
     if ($SRPMS{$pkg} == 1) {
-      $R{$$a[3]} += 1;
-      $O{$$a[4]} += 1;
-      $cnt += 1;
+      $BZREV_CNT{$$a[3]} += 1;
+      $BZOWN_CNT{$$a[4]} += 1;
+      $COUNT_LIST{"acceptedClosed"} += 1;
       if (!defined($CORE{$pkg}) && !defined($OWN{$pkg})) {
 	push @BLO, $b;
-	$missO += 1;
+	$COUNT_LIST{"missingOwner"} += 1;
       }
     } else {
       if (Date_Cmp($$a[2], $fourDaysAgo) < 0) {
 	# print "Missing pkg: ", join(" ", @$a), "\n";
 	push @BL, $b;
-	$miss += 1;
+	$COUNT_LIST{"missing"} += 1;
       }
       if (defined $OWN{$pkg}) {
-	$R{$$a[3]} += 1;
-	$O{$$a[4]} += 1;
-	$cnt += 1;
+	$BZREV_CNT{$$a[3]} += 1;
+	$BZOWN_CNT{$$a[4]} += 1;
+	$COUNT_LIST{"acceptedClosed"} += 1;
       } else {
 	push @BLO, $b;
-	$missO += 1;
+	$COUNT_LIST{"missingOwner"} += 1;
       }
     }
   }
-  if ($miss > 0) {
-    print "\nWe have $miss accepted, closed packages where I'm unable to ",
+  my @TR = sort {$BZREV_CNT{$b} <=> $BZREV_CNT{$a}} keys %BZREV_CNT;
+  my @TO = sort {$BZOWN_CNT{$b} <=> $BZOWN_CNT{$a}} keys %BZOWN_CNT;
+  $BUG_LIST{"acceptedNoDevel"} = \@BL;
+  $BUG_LIST{"acceptedNoOwn"} = \@BLO;
+  $OWNER_LIST{"BZOwner"} = \@TO;
+  $OWNER_LIST{"BZReviewer"} = \@TR;
+}
+
+sub displayAcceptWiki {
+  my ($BZ) = @_;
+  print "\n\n== About FE-ACCEPT packages ==\n";
+  print "\n\n=== Package count ===\n";
+  print "\nWe have $COUNT_LIST{'acceptedClosed'} accepted, closed package reviews\n";
+  print "\n=== Top 10 BZ review requests submitters ===\n";
+  &displayOwnerCntWiki($OWNER_LIST{"BZOwner"}, \%BZOWN_CNT);
+  print "\n=== Top 10 BZ review requests reviewers ===\n";
+  &displayOwnerCntWiki($OWNER_LIST{"BZReviewer"}, \%BZREV_CNT);
+  print "\n\n=== Potential problems ===\n";
+  if ($COUNT_LIST{"missing"} > 0) {
+    print "\nWe have $COUNT_LIST{'missing'} accepted, closed packages where I'm unable to ",
       "find the package in the development repo:\n";
-    &displayBL(\@BL, $BZ);
+    &displayBLWiki($BUG_LIST{"acceptedNoDevel"}, $BZ);
   }
-  if ($missO > 0) {
-    print "\nWe have $missO accepted, closed packages where I'm unable to ",
+  if ($COUNT_LIST{"missingOwner"} > 0) {
+    print "\nWe have $COUNT_LIST{'missingOwner'} accepted, closed packages where I'm unable to ",
       "find the package in the owners file:\n";
-    &displayBL(\@BLO, $BZ);
+    &displayBLWiki($BUG_LIST{"acceptedNoOwn"}, $BZ);
   }
-  my @TR = sort {$R{$b} <=> $R{$a}} keys %R;
-  my @TO = sort {$O{$b} <=> $O{$a}} keys %O;
-  print "\nWe have $cnt accepted, closed package reviews\n";
-  print "\nTop 10 BZ review requests submitters:\n";
-  for my $i (0 .. 9) {
-    my $n = $TO[$i];
-    $n =~ s/["]//g;
-    $n =~ s/\@/ at /;
-    $n =~ s/\./ dot /g;
-    printf "%-50s: %d\n", $n, $O{$TO[$i]};
-  }
-  print "\nTop 10 BZ review requests reviewers:\n";
-  for my $i (0 .. 9) {
-    my $n = $TR[$i];
-    $n =~ s/["]//g;
-    $n =~ s/\@/ at /;
-    $n =~ s/\./ dot /g;
-    printf "%-50s: %d\n", $n, $R{$TR[$i]};
+  if ($COUNT_LIST{"acceptOpenInactive"} >= 0) {
+    print "\n\n=== Inactivity notice ===\n";
+    print "\nWe have $COUNT_LIST{'acceptOpenInactive'} accepted, open package reviews older than 4 weeks\n";
+    &displayBLWiki($BUG_LIST{"acceptOpenInactive"}, $BZ);
+  }
+  if ($COUNT_LIST{"acceptOpenInDevel"} > 0) {
+    print "\n\n=== Some cleanup needed ===\n";
+    print "\nWe have $COUNT_LIST{'acceptOpenInDevel'} accepted, open package reviews where the package ",
+      "appears to already be in the repo...\n";
+    &displayBLWiki($BUG_LIST{"acceptOpenInDevel"}, $BZ);
   }
 }
 
@@ -338,7 +396,6 @@
   my ($BZ) = @_;
   my @BL;
   my @LATE;
-  my $cnt = 0;
   foreach my $b (sort(keys %$BZ)) {
     my $a = $BZ->{$b};
     next if $$a[5] eq "\"CLOSED\"";
@@ -350,32 +407,25 @@
       $pkg = lcfirst $$a[8];
     }
     if ($SRPMS{$pkg} == 1) {
-      $cnt += 1;
+      $COUNT_LIST{"acceptOpenInDevel"} += 1;
       push @BL, $b;
     }
     if (Date_Cmp($$a[2], $fourWeeksAgo) < 0) {
       push @LATE, $b;
     }
   }
-  print "\nWe have $cnt accepted, open package reviews where the package ",
-    "appears to already be in the repo...\n";
-  &displayBL(\@BL, $BZ);
-  if ($#LATE >= 0) {
-    $cnt = $#LATE + 1;
-    print "\nWe have $cnt accepted, open package reviews older than 4 weeks\n";
-    &displayBL(\@LATE, $BZ);
-  }
+  $BUG_LIST{"acceptOpenInDevel"} = \@BL;
+  $BUG_LIST{"acceptOpenInactive"} = \@LATE;
+  $COUNT_LIST{"acceptOpenInactive"} = $#LATE;
 }
 
 sub countOpen {
   my ($BZ, $cur) = @_;
-  my $cnt = 0;
   foreach my $b (sort(keys %$BZ)) {
     my $a = $BZ->{$b};
     next if $$a[5] eq "\"CLOSED\"";
-    $cnt += 1;
+    $COUNT_LIST{"open$cur"} += 1;
   }
-  print "\nWe have $cnt open tickets in $cur\n";
 }
 
 sub checkNotClosed {
@@ -386,10 +436,8 @@
     next unless $$a[5] eq "\"CLOSED\"";
     push @BL, $b;
   }
-  return if $#BL < 0;
-  my $cnt = $#BL + 1;
-  print "\nWe have $cnt closed tickets still blocking $cur\n";
-  &displayBL(\@BL, $BZ);
+  $COUNT_LIST{"closed$cur"} = $#BL + 1;
+  $BUG_LIST{"closed$cur"} = \@BL;
 }
 
 sub checkLowActivity {
@@ -407,35 +455,29 @@
       }
     }
   }
-  if ($#LATE >= 0) {
-    my $cnt = $#LATE + 1;
-    print "\nWe have $cnt $cur tickets with no activity in eight weeks\n";
-    &displayBL(\@LATE, $BZ);
-  }
-  if ($#BL >= 0) {
-    my $cnt = $#BL + 1;
-    print "\nWe have $cnt $cur tickets with no activity in four weeks\n";
-    &displayBL(\@BL, $BZ);
-  }
-}
-
-sub checkNoActivity {
-  my ($BZ, $cur) = @_;
-  my @BL;
-  foreach my $b (sort(keys %$BZ)) {
-    my $a = $BZ->{$b};
-    next if $$a[5] eq "\"CLOSED\"";
-    next if $$a[1] ne $$a[2];
-    if (Date_Cmp($$a[2], $eightWeeksAgo) < 0) {
-      push @BL, $b;
-    }
-  }
-  if ($#BL >= 0) {
-    my $cnt = $#BL + 1;
-    print "\nWe have $cnt $cur tickets 8 weeks old with no comments\n";
-    &displayBL(\@BL, $BZ);
-  }
-}
+  $COUNT_LIST{"inactive8$cur"} = $#LATE + 1;
+  $COUNT_LIST{"inactive4$cur"} = $#BL + 1;
+  $BUG_LIST{"inactive8$cur"} = \@LATE;
+  $BUG_LIST{"inactive4$cur"} = \@BL;
+}
+
+#sub checkNoActivity {
+#  my ($BZ, $cur) = @_;
+#  my @BL;
+#  foreach my $b (sort(keys %$BZ)) {
+#    my $a = $BZ->{$b};
+#    next if $$a[5] eq "\"CLOSED\"";
+#    next if $$a[1] ne $$a[2];
+#    if (Date_Cmp($$a[2], $eightWeeksAgo) < 0) {
+#      push @BL, $b;
+#    }
+#  }
+#  if ($#BL >= 0) {
+#    my $cnt = $#BL + 1;
+#    print "\nWe have $cnt $cur tickets 8 weeks old with no comments\n";
+#    &displayBL(\@BL, $BZ);
+#  }
+#}
 
 sub usage {
   print STDERR "Usage: $0 [options] <bugs list>
@@ -494,3 +536,56 @@
     printf "  %-40s %s\n", $$a[8], $owner;
   }
 }
+
+sub displayBLWiki {
+  my ($BL, $BZ) = @_;
+  my %O;
+  foreach my $b (@$BL) {
+    my $a = $BZ->{$b};
+    my $e = $O{$$a[4]};
+    if (defined $e) {
+      push @$e, $a;
+    } else {
+      $O{$$a[4]} = [ $a ];
+    }
+  }
+  foreach my $n (sort(keys %O)) {
+    my $e = $O{$n};
+    $n =~ s/["]//g;
+    $n =~ s/\@/ at /;
+    $n =~ s/\./ dot /g;
+    foreach my $a (@$e) {
+      print "||$n||`$$a[8]`||[";
+      print "https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=$$a[0] $$a[0]";
+      print "]||$$a[9]||\n";
+    }
+  }
+}
+
+sub displayNewReviewWiki {
+  my ($BZ, $cur) = @_;
+  print "\n\n== About $cur packages ==\n";
+  print "\n\n=== Open ticket count ===\n";
+  my $cnt = $COUNT_LIST{"open$cur"};
+  print "\nWe have $cnt open tickets in $cur\n";
+  if ($COUNT_LIST{"inactive8$cur"} > 0
+      || $COUNT_LIST{"inactive4$cur"} > 0) {
+    print "\n\n=== Inactivity notice ===\n";
+    if ($COUNT_LIST{"inactive8$cur"} > 0) {
+      $cnt = $COUNT_LIST{"inactive8$cur"};
+      print "\nWe have $cnt $cur tickets with no activity in eight weeks\n";
+      &displayBLWiki($BUG_LIST{"inactive8$cur"}, $BZ);
+    }
+    if ($COUNT_LIST{"inactive4$cur"} > 0) {
+      $cnt = $COUNT_LIST{"inactive4$cur"};
+      print "\nWe have $cnt $cur tickets with no activity in four weeks\n";
+      &displayBLWiki($BUG_LIST{"inactive4$cur"}, $BZ);
+    }
+  }
+  if ($COUNT_LIST{"closed$cur"} > 0) {
+    print "\n\n=== Some cleanup needed ===\n";
+    $cnt = $COUNT_LIST{"closed$cur"};
+    print "\nWe have $cnt closed tickets still blocking $cur\n";
+    &displayBLWiki($BUG_LIST{"closed$cur"}, $BZ);
+  }
+}




More information about the fedora-extras-commits mailing list