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