commit-womb
[Top][All Lists]
Advanced

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

[commit-womb] gnumaint Makefile README gm gnumaint sendmaintm...


From: Karl Berry
Subject: [commit-womb] gnumaint Makefile README gm gnumaint sendmaintm...
Date: Fri, 15 Feb 2008 19:06:53 +0000

CVSROOT:        /sources/womb
Module name:    gnumaint
Changes by:     Karl Berry <karl>       08/02/15 19:06:53

Modified files:
        .              : Makefile README gm gnumaint sendmaintmail 
Added files:
        .              : mailtoname 

Log message:
        record real names in activity-report.txt

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnumaint/Makefile?cvsroot=womb&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/gnumaint/README?cvsroot=womb&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gm?cvsroot=womb&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/gnumaint/gnumaint?cvsroot=womb&r1=1.39&r2=1.40
http://cvs.savannah.gnu.org/viewcvs/gnumaint/sendmaintmail?cvsroot=womb&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnumaint/mailtoname?cvsroot=womb&rev=1.1

Patches:
Index: Makefile
===================================================================
RCS file: /sources/womb/gnumaint/Makefile,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- Makefile    15 Feb 2008 01:35:41 -0000      1.14
+++ Makefile    15 Feb 2008 19:06:53 -0000      1.15
@@ -9,7 +9,7 @@
 test-rece:
 #      gnumaint recemail </etc/issue
 #      gnumaint recemail <testjunk1.msg
-#      gnumaint recemail <testgood1.msg
+       gnumaint recemail <testgood1.msg
 #      gnumaint recemail <testaddr+real.msg
 #      gnumaint recemail <testaddrangle.msg
 #      gnumaint recemail <testaddrcase.msg
@@ -43,6 +43,9 @@
        gnumaint help list $(sep)
        gnumaint help $(sep)
 
+test-activity-convert:
+       mailtoname
+
 test-maint-convert:
 #      maintfileupgrade $(gorg)/maintainers | dos2unix
        maintfileupgrade m.src | dos2unix | tee m.new

Index: README
===================================================================
RCS file: /sources/womb/gnumaint/README,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- README      30 Dec 2007 17:05:09 -0000      1.9
+++ README      15 Feb 2008 19:06:53 -0000      1.10
@@ -38,5 +38,4 @@
 no non-email maintainers in .bypkg
 multiple email fields -> error
 on receipt, have to match any altemail not just primary
-activity-report should record name, not mutable email 
 must ignore maintainers without email, not send to empty

Index: gm
===================================================================
RCS file: /sources/womb/gnumaint/gm,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- gm  15 Feb 2008 01:35:41 -0000      1.8
+++ gm  15 Feb 2008 19:06:53 -0000      1.9
@@ -1,5 +1,5 @@
 #!/usr/bin/env perl
-# $Id: gm,v 1.8 2008/02/15 01:35:41 karl Exp $
+# $Id: gm,v 1.9 2008/02/15 19:06:53 karl Exp $
 # More gnumaint-related stuff, since I think better in Perl than TCL.
 # 
 # Copyright 2007, 2008 Free Software Foundation Inc.
@@ -112,7 +112,7 @@
       &debug ("$p recently released, skipping");
 
     } elsif (exists $activity{$p}) {
-      # xx have to only check back to a certain date eventually
+      # xx must check back to some cutoff, eventually
       &debug ("$p got activity reply, skipping");
 
     } elsif ($pkgs{$p}[0]->{"name"} eq "unmaintained") {
@@ -259,7 +259,7 @@
   
   open (ACTIVITY_FILE) || die "open($ACTIVITY_FILE) failed: $!";
   while (<ACTIVITY_FILE>) {
-    my ($email,$pkg,$time) = split (/\|/);
+    my ($name,$email,$pkg,$time) = split (/\|/);
 
     # later entries will simply overwrite earlier ones; seems ok?
     if ($how eq "by-package") {

Index: gnumaint
===================================================================
RCS file: /sources/womb/gnumaint/gnumaint,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- gnumaint    21 Aug 2007 23:16:17 -0000      1.39
+++ gnumaint    15 Feb 2008 19:06:53 -0000      1.40
@@ -1,6 +1,6 @@
 #!/usr/bin/env tclsh
 # gnumaint - GNU maintainers file maintenance (/gd/gnuorg/maintainers)
-# $Id: gnumaint,v 1.39 2007/08/21 23:16:17 karl Exp $
+# $Id: gnumaint,v 1.40 2008/02/15 19:06:53 karl Exp $
 #
 # Copyright 2007 Free Software Foundation Inc.
 # 
@@ -352,6 +352,7 @@
   ;# Collect information for this maintainer
   foreach maintainer $maintainersdb {
       if {[lindex $maintainer 1] == $maintainer_email} then {
+          set maintainer_name [lindex $maintainer 0]
           set maintainer_packages [lindex $maintainer 3]
           break;
       }
@@ -361,7 +362,7 @@
   set fout [open $report_file a]
 
   foreach pkg $maintainer_packages {
-      set pkgline "$maintainer_email|$pkg|[timestamp]"
+      set pkgline "$maintainer_name|$maintainer_email|$pkg|[timestamp]"
       puts $fout $pkgline
   }
 

Index: sendmaintmail
===================================================================
RCS file: /sources/womb/gnumaint/sendmaintmail,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- sendmaintmail       21 Aug 2007 23:16:17 -0000      1.6
+++ sendmaintmail       15 Feb 2008 19:06:53 -0000      1.7
@@ -1,5 +1,5 @@
 #!/usr/bin/env perl
-# $Id: sendmaintmail,v 1.6 2007/08/21 23:16:17 karl Exp $
+# $Id: sendmaintmail,v 1.7 2008/02/15 19:06:53 karl Exp $
 # Send or refrain from sending a message to a maintainer.
 # 
 # Copyright 2007 Free Software Foundation Inc.
@@ -53,14 +53,14 @@
   # recently enough in activity-report.txt.
   # 
   my $now = time ();
-  my $cutoff = $now - 300 * 24 * 60 * 60;  # don't bother them for 300 days
+  my $cutoff = $now - 512 * 24 * 60 * 60;  # don't bother them for 512 days
   #warn "cutoff seconds: $cutoff\n";
   #
   chomp (my @activity = `cat activity-report.txt`);
   @activity = reverse @activity;  # newest first
   #
   for my $a (@activity) {
-    my ($email,$pkg,$time) = split (/\|/, $a);
+    my ($name, $email,$pkg,$time) = split (/\|/, $a);
     next unless $time;         # last_sendemail has two fields
     $time =~ tr/./ /;          # date -d wants a space between date and time
     substr ($time,13,2) = "";  # wipe out seconds, date -d can't handle

Index: mailtoname
===================================================================
RCS file: mailtoname
diff -N mailtoname
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ mailtoname  15 Feb 2008 19:06:53 -0000      1.1
@@ -0,0 +1,99 @@
+#!/usr/bin/env perl
+# We originally used email addresses in activity-report.txt; turns out
+# it's much better to include real names, since email addresses change and
+# vary.  This one-time script does a simplistic conversion, with hand
+# clean-up needed afterwards.
+
+exit (&main ());
+
+sub main
+{
+  my %names = &read_maintainers ("by-email");
+  my @activity = &read_activity ("activity-report.txt");
+  
+  for my $a (@activity) {
+    my ($email,$pkg,$date) = split (/\|/, $a);
+    print $names{lc ($email)};
+    print "|$email|$pkg|$date";
+  }
+  
+  return 0;
+}
+
+
+
+# just do very basic parsing for this one-time job.
+# return hash where keys are email addresses and values are names.
+# we record all emails we can find.
+# 
+sub read_maintainers
+{
+  my %ret;
+  
+  $MAINTAINERS_FILE = "m.link";
+  open (MAINTAINERS_FILE) || die "open($MAINTAINERS_FILE) failed: $!";
+
+  # ignore first part of maintainers, through the first form feed.
+  while (<MAINTAINERS_FILE>) {
+    chomp;
+    last if /^\f$/;
+  }
+  
+  # read the real information.
+  my (@email_list, $name);
+  while (<MAINTAINERS_FILE>) {
+    chomp;
+    next if /^#/;  # ignore comments
+    
+    # at a blank line, save the maintainer info we've accumulated, if any.
+    if (/^\s*$/) {
+      for my $e (@email_list) {
+        if (exists $ret{$e}) {
+          warn "already saw email $e for $ret{$e}, now have $name";
+        } else {
+          $ret{$e} = $name;
+        }
+      }
+      
+      @email_list = ();
+      $name = undef;
+
+      last if /^\f$/;  # form feed marks end of info.
+      next;
+    }
+
+    # key is everything before the first colon.
+    # value is everything after the first colon and whitespace.
+    my ($key,$val) = split (/:\s*/, $_, 2);
+    
+    # just want name and email addresses.
+    if ($key eq "name") {
+      $name = $val;
+    } elsif ($key =~ /email/) {
+      push (@email_list, lc ($val));
+    }
+  }
+  
+  # skip the rest.
+  close (MAINTAINERS_FILE) || warn "close($MAINTAINERS_FILE) failed: $!";
+  
+  return %ret;
+}
+
+
+
+sub read_activity
+{
+  my ($file) = @_;
+  my (@ret);
+  
+  local *FILE;
+  $FILE = $file;
+  open (FILE) || die "open($FILE) failed: $!";
+  while (<FILE>) {
+    push (@ret, $_);
+  }
+  close (FILE) || warn "close($FILE) failed: $!";
+
+  return @ret;
+}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]