[Top][All Lists]

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

[coreutils] [PATCH] maint: generate much of the THANKS file

From: Jim Meyering
Subject: [coreutils] [PATCH] maint: generate much of the THANKS file
Date: Fri, 31 Dec 2010 16:15:37 +0100

Resurrecting a patch I started work on over two years ago...
I'll push this next year.

>From 886f1b958a06c62a8b4a3579d7e330ac2f255d12 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Mon, 17 Nov 2008 12:05:27 +0100
Subject: [PATCH] maint: generate much of the THANKS file

Before this change, we had a tendency to manually list each
contributor's name in THANKS.  Now, each commit "Author" is
included in the generated THANKS file automatically, and most
of the old THANKS file is now a template,
We'll still have to manually list the names of people who report
problems without a usable patch.

* New file, derived from THANKS, but removing names of
those who are listed as git log 'Author:'s.
* THANKS: Remove file.
* thanks-gen: New file.
* (THANKS): New rule.
(EXTRA_DIST): Add .mailmap, and thanks-gen.
* .gitignore: Add THANKS and THANKS-to-translators.
* .mailmap: Unify on single address and name-spelling per contributor.
 .gitignore          |    2 +
 .mailmap            |   25 ++++++++++++++++++--         |   27 +++++++++++++++++++++-
 THANKS => |   62 +++++++++-----------------------------------------
 thanks-gen          |   16 +++++++++++++
 5 files changed, 77 insertions(+), 55 deletions(-)
 rename THANKS => (92%)
 create mode 100755 thanks-gen

diff --git a/.gitignore b/.gitignore
index cd73b9a..7fead3d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -81,3 +81,5 @@ ID
diff --git a/.mailmap b/.mailmap
index d4fcef5..e3d7a27 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1,12 +1,31 @@
 # Map git author names and email addresses to canonical/preferred form.
 <address@hidden> <address@hidden>
+<address@hidden> <address@hidden>
 <address@hidden> <address@hidden>
 <address@hidden> <address@hidden>
-Paul R. Eggert <address@hidden> <address@hidden>
-Paul R. Eggert <address@hidden> <address@hidden>
+Paul Eggert <address@hidden> <address@hidden>
+Paul Eggert <address@hidden> <address@hidden>
+<address@hidden> <address@hidden>
 # Evan's two changes listed my email address.
 Evan Hunt <address@hidden> Evan Hunt <address@hidden>
 <address@hidden> <address@hidden  (trivial change)>
-Pádraig Brady <address@hidden> <address@hidden>
+Pádraig Brady <address@hidden> <address@hidden>
 <address@hidden> <address@hidden>
 <address@hidden> <address@hidden>
+<address@hidden> <address@hidden>
+<address@hidden> <address@hidden>
+<address@hidden> <address@hidden>
+<address@hidden> <address@hidden>
+<address@hidden> <address@hidden>
+<address@hidden> <address@hidden>
+<address@hidden> <address@hidden>
+<address@hidden> <address@hidden>
+<address@hidden> <address@hidden>
+# Prefer spelled-out middle name and its address.
+Arne Henrik Juul <address@hidden> Arne H. Juul <address@hidden>
+# Had email as name.
+Dan Jacobson <address@hidden> address@hidden <address@hidden>
diff --git a/ b/
index b61229d..4fc6e8e 100644
--- a/
+++ b/
@@ -68,9 +68,11 @@ syntax_check_exceptions =            \
 EXTRA_DIST =                           \
   $(changelog_etc)                     \
   $(syntax_check_exceptions)           \
+  .mailmap                             \
   .prev-version                                \
   .version                             \
   .vg-suppressions                     \
+                            \
   THANKS-to-translators                        \                          \
   bootstrap                            \
@@ -79,7 +81,8 @@ EXTRA_DIST =                          \                               \                                \
   gl/modules/getloadavg.diff           \
+                             \
+  thanks-gen

 ALL_RECURSIVE_TARGETS += install-root
@@ -152,3 +155,25 @@ check-ls-dircolors:
          |sed -n '/^  *"/p'|tr , '\n'|sed 's/^  *//'           \
          |sed -n 's/^"\(..\)"/\1/p'|sort -u);                  \
        test "$$dc" = "$$ls"
+# Sort in traditional ASCII order, regardless of the current locale;
+# otherwise we may get into trouble with distinct strings that the
+# current locale considers to be equal.
+# Extract all lines up to the first one starting with "##".
+prologue = perl -ne '/^\#\#/ and exit; print' $(srcdir)/
+THANKS: .mailmap thanks-gen .version
+       $(AM_V_GEN)                                                     \
+       {                                                               \
+         $(prologue); echo;                                            \
+         { perl -ne '/^$$/.../^$$/ and print' $(srcdir)/      \
+             | grep -v '^$$' | perl -pe 's/  +/\0/';                   \
+           git log --pretty=format:'%aN%x00%aE'                        \
+             | $(ASSORT) -u;                                           \
+         } | $(srcdir)/thanks-gen                                      \
+           | LC_ALL=en_US.UTF-8 sort -f;                               \
+         echo;                                                         \
+         printf ';; %s\n' 'Local Variables:' 'coding: utf-8' End:;     \
+       } > address@hidden && mv address@hidden $@
diff --git a/THANKS b/
similarity index 92%
rename from THANKS
rename to
index 311fa5b..b475eef 100644
--- a/THANKS
+++ b/
@@ -1,14 +1,19 @@
 These people have contributed to the GNU coreutils (formerly, the fileutils,
 textutils, and/or sh-utils packages).  Some have reported problems, others
 have contributed improvements to the documentation, actual code, and even
-complete programs.  Those contributions are described in the ChangeLog
-files.  If your name has been left out, if you'd rather not be listed,
-or if you'd prefer a different address be used, please send a note to
-the bug-report mailing list (as seen on last line of e.g., cp --help).
+complete programs.  Those contributions are described in the version control
+logs and ChangeLog files.  If your name has been left out, if you'd rather
+not be listed, or if you'd prefer a different address be used, please send a
+note to the bug-report mailing list (as seen at end of e.g., cp --help).
+## There is no need to list here any name that appears as an Author in
+## "git log" output.  Those are automatically added when this template
+## is used to generate the THANKS file.  Note that numerous people listed
+## here would have been listed as commit authors if we had been using git
+## for version control when they contributed.

 ???                                 address@hidden
 A Costa                             address@hidden
-Aaron Burgemeister                  address@hidden
 Aaron Hawley                        address@hidden
 Achim Blumensath                    address@hidden
 Adam Jimerson                       address@hidden
@@ -39,12 +44,10 @@ Andreas Frische                     address@hidden
 Andreas Gruenbacher                 address@hidden
 Andreas Jaeger                      address@hidden
 Andreas Luik                        address@hidden
-Andreas Schwab                      address@hidden
 Andreas Stolcke                     address@hidden
 Andrei Gaponenko                    address@hidden
 Andres Soolo                        address@hidden
 Andrew Burgess                      address@hidden
-Andrew Church                       address@hidden
 Andrew Dalke                        address@hidden
 Andrew Fabbro                       address@hidden
 Andrew Pham                         address@hidden
@@ -56,15 +59,12 @@ Anthony Thyssen                     address@hidden
 Antonio Rendas                      address@hidden
 Ariel Faigon                        address@hidden
 Arjan Opmeer                        address@hidden
-Arne H. Juul                        address@hidden
 Arne Henrik Juul                    address@hidden
 Arnold Robbins                      address@hidden
 Arthur Pool                         address@hidden
 Arun Sharma                         address@hidden
 Arvind Autar                        address@hidden
-Assaf Gordon                        address@hidden
 Augey Mikus                         address@hidden
-Aurelien Jarno                      address@hidden
 Austin Donnelly                     address@hidden
 Axel Kittenberger                   address@hidden
 Barry Kelly               
@@ -73,7 +73,6 @@ Ben Elliston                        address@hidden
 Ben Harris                          address@hidden
 Bengt Martensson                    address@hidden
 Benjamin Cutler                     address@hidden
-Benno Schulenberg                   address@hidden
 Bernard Giroud                      address@hidden
 Bernd Eckenfels                     address@hidden
 Bernd Leibing                       address@hidden
@@ -88,17 +87,13 @@ Bill Brelsford                      address@hidden
 Bill Peters                         address@hidden
 Bjorn Helgaas                       address@hidden
 Bob McCracken                       address@hidden
-Bob Proulx                          address@hidden
 Branden Robinson                    address@hidden
 Brendan O'Dea                       address@hidden
 Brian Kimball                       address@hidden
 Brian M. Carlson                    address@hidden
 Brian Silverman                     address@hidden
 Brian Youmans                       address@hidden
-Bruce Korb                          address@hidden
 Bruce Robertson                     address@hidden
-Bruno Haible                        address@hidden
-C de-Avillez                        address@hidden
 Carl Johnson                        address@hidden
 Carl Lowenstein                     address@hidden
 Carl Roth                           address@hidden
@@ -106,7 +101,6 @@ Carlos Canau                        address@hidden
 Charles Karney                      address@hidden
 Charles Randall                     address@hidden
 Chas. Owens                         address@hidden
-Chen Guo                            address@hidden
 Chip Salzenberg                     address@hidden
 Chris Clayton                       address@hidden
 Chris Faylor                        address@hidden
@@ -124,7 +118,6 @@ Christophe LYON                     address@hidden
 Chuck Hedrick                       address@hidden
 Clark Morgan                        address@hidden
 Clement Wang                        address@hidden
-Cliff Miller                        address@hidden
 Colin Plumb                         address@hidden
 Colin Watson                        address@hidden
 Collin Rogowski                     address@hidden
@@ -134,11 +127,8 @@ Cyril Bouthors                      address@hidden
 Dale Scheetz                        address@hidden
 Dameon G. Rogers                    address@hidden
 Dan Hagerty                         address@hidden
-Dan Hipschman                       address@hidden
-Dan Jacobson                        address@hidden
 Dan Pascu                           address@hidden
 Daniel Bergstrom                    address@hidden
-Daniel Dunbar                       address@hidden
 Daniel P. Berrangé                  address@hidden
 Dániel Varga                        address@hidden
 Danny Levinson                      address@hidden
@@ -146,7 +136,6 @@ Darrel Francis                      address@hidden
 Darren Salt                         address@hidden
 Dave Beckett                        address@hidden
 David Alan Gilbert                  address@hidden
-David Bartley                       address@hidden
 David Dyck                          address@hidden
 David Eisner                        address@hidden
 David Flynn                         address@hidden
@@ -167,14 +156,12 @@ Dick Streefland                     address@hidden
 Dirk Lattermann                     address@hidden
 Dirk-Jan Faber                      address@hidden
 Dmitry Rutsky                       address@hidden
-Dmitry V. Levin                     address@hidden
 Don Parsons                         address@hidden
 Donni Erpel                         address@hidden
 Doug Coleman                        address@hidden
 Doug McLaren                        address@hidden
 Dragos Harabor                      address@hidden
 Duncan Roe                          address@hidden
-Ed Avis                             address@hidden
 Edward Welbourne                    address@hidden
 Edzer Pebesma                       address@hidden
 Egmont Koblinger                    address@hidden
@@ -182,18 +169,14 @@ Eirik Fuller                        address@hidden
 Eivind                              address@hidden
 Elbert Pol                          address@hidden
 Eli Zaretskii                       address@hidden
-Elias Pipping                       address@hidden
 Emile LeBlanc                       address@hidden
 Emmanuel Lacour                     address@hidden
-Erik Auerswald                      address@hidden
 Eric Backus                         address@hidden
-Eric Blake                          address@hidden
 Eric G. Miller                      address@hidden
 Eric Pemente                        address@hidden
 Eric S. Raymond                     address@hidden
 Erik Bennett                        address@hidden
 Erik Corry                          address@hidden
-Evan Hunt                           address@hidden
 Felix Lee                           address@hidden
 Felix Rauch Valenti                 address@hidden
 Ferdinand                           address@hidden
@@ -268,10 +251,8 @@ James Antill                        address@hidden
 James Lemley                        address@hidden
 James Hunt                          address@hidden
 James Ralston                       address@hidden
-James R. Van Zandt                  address@hidden
 James Sneeringer                    address@hidden
 James Tanis                         address@hidden
-James Youngman                      address@hidden
 Jamie Lokier                        address@hidden
 Jamie McClelland                    address@hidden
 Jan Engelhardt                      address@hidden
@@ -299,13 +280,11 @@ Jim Dennis                          address@hidden
 Joakim Rosqvist                     address@hidden
 Jochen Hein                         address@hidden
 Joe Orton                           address@hidden
-Joel E. Denny                       address@hidden
 Joerg Sonnenberger                  address@hidden
 Joey Hess                           address@hidden
 Johan Boule                         address@hidden
 Johan Danielsson                    address@hidden
 John Bley                           address@hidden
-John David Anglin                   address@hidden
 John Gatewood Ham                   address@hidden
 John Gotts                          address@hidden
 John Kendall                        address@hidden
@@ -344,7 +323,6 @@ Keith Owens                         address@hidden
 Keith Thompson                      address@hidden
 Ken Pizzini                         address@hidden
 Kevin Mudrick                       address@hidden
-Kim Hansen                          address@hidden
 Kirk Kelsey                         address@hidden
 Kristin E Thomas                    address@hidden
 Kjetil Torgrim Homme                address@hidden
@@ -410,7 +388,6 @@ Matthew Clarke                      address@hidden
 Matthew S. Levine                   address@hidden
 Matthew Smith                       address@hidden
 Matthew Swift                       address@hidden
-Matthew Woehlke                     address@hidden
 Matthias Urlichs                    address@hidden
 Matti Aarnio                        address@hidden
 Mathias Brodala                     address@hidden
@@ -429,9 +406,7 @@ Michael J. Croghan                  address@hidden
 Michael McFarland                   address@hidden
 Michael McLagan                     address@hidden
 Michael Piefel                      address@hidden
-Michael Speer                       address@hidden
 Michael Steffens                    address@hidden
-Michael Stone                       address@hidden
 Michael Stutz                       address@hidden
 Michael van Elst                    address@hidden
 Michael Veksler                     address@hidden
@@ -440,11 +415,9 @@ Michal Politowski                   address@hidden
 Michal Svec                         address@hidden
 Michel Robitaille                   address@hidden
 Michiel Bacchiani                   address@hidden
-Mikael Magnusson                    address@hidden
 Mike Castle                         address@hidden
 Mike Coleman                        address@hidden
 Mike Jetzer                         address@hidden
-Mike Frysinger                      address@hidden
 Mikko Tuumanen                      address@hidden
 Mikulas Patocka                     address@hidden
 Miles Bader                         address@hidden
@@ -472,10 +445,8 @@ Olivier Fourdan                     address@hidden
 Ørn E. Hansen                       address@hidden
 Oskar Liljeblad                     address@hidden
 Otavio Salvador                     address@hidden
-Pádraig Brady                       address@hidden
 Patrick Mauritz                     address@hidden
 Paul D. Smith                       address@hidden
-Paul Eggert                         address@hidden
 Paul Ghaleb                         address@hidden
 Paul Jarc                           address@hidden
 Paul Nevai                          address@hidden
@@ -490,17 +461,14 @@ Per Starbäck                        address@hidden
 Peter Breitenlohner                 address@hidden
 Peter Dyballa                       address@hidden
 Peter Eriksson                      address@hidden
-Peter Fales                         address@hidden
 Peter Horst                         address@hidden
 Peter Moulder                       address@hidden
-Peter O'Gorman                      address@hidden
 Peter Samuelson                     address@hidden
 Peter Seebach                       address@hidden
 Petr Uzel                           address@hidden
 Petter Reinholdtsen                 address@hidden
 Phelippe Neveu                      address@hidden
 Phil Richards                       address@hidden
-Philip Rowlands                     address@hidden
 Philippe De Muyter                  address@hidden
 Philippe Schnoebelen                address@hidden
 Phillip Jones                       address@hidden
@@ -512,12 +480,9 @@ Prashant TR                         address@hidden
 Priit Jõerüüt                       address@hidden
 Rainer Orth                         address@hidden
 Ralf W. Stephan                     address@hidden
-Ralf Wildenhues                     address@hidden
 Ralph Loader                        address@hidden
 Raul Miller                         address@hidden
 Raúl Núñez de Arenas Coronado       address@hidden
-Reuben Thomas                       address@hidden
-Yang Ren                            address@hidden
 Richard A Downing                   address@hidden
 Richard Braakman                    address@hidden
 Richard Dawe                        address@hidden
@@ -560,7 +525,6 @@ Solar Designer                      address@hidden
 Stanislav Ievlev                    address@hidden
 Stavros Passas                      address@hidden
 Stéphane Chazelas                   address@hidden
-Stéphane Raimbault                  address@hidden
 Stephen Depooter                    address@hidden
 Stephen Eglen                       address@hidden
 Stephen Gildea                      address@hidden
@@ -577,13 +541,11 @@ Steven P Watson                     address@hidden
 Stuart Citrin                       address@hidden
 Stuart Kemp                         address@hidden
 Stuart Shelton                      address@hidden
-Sven Joachim                        address@hidden
 Szakacsits Szabolcs                 address@hidden
 Tadayoshi Funaba                    address@hidden
 TAKAI Kousuke                       address@hidden
 Theodore Ts'o                       address@hidden
 The Wanderer                        address@hidden
-Theodoros V. Kalamatianos           address@hidden
 Thomas Bushnell                     address@hidden
 Thomas Goerlich                     address@hidden
 Thomas Hood                         address@hidden
@@ -597,8 +559,6 @@ Tim Mooney                          address@hidden
 Tim Ryan                            address@hidden
 Tim Smithers                        address@hidden
 Tim Waugh                           address@hidden
-Tobias Quathamer                    address@hidden
-Tobias Stoeckmann                   address@hidden
 Toby Peterson                       address@hidden
 Todd A. Jacobs                      address@hidden
 Tom Fitzhenry                       address@hidden
@@ -644,10 +604,10 @@ Wis Macomson                        address@hidden
 Wojciech Purczynski                 address@hidden
 Wolfram Kleff                       address@hidden
 Won-kyu Park                        address@hidden
+Yang Ren                            address@hidden
 Yanko Kaneti                        address@hidden
 Yann Dirson                         address@hidden
 Yutaka Amanai                       address@hidden
-Zvi Har'El                          address@hidden

 ;; Local Variables:
 ;; coding: utf-8
diff --git a/thanks-gen b/thanks-gen
new file mode 100755
index 0000000..f1c11b3
--- /dev/null
+++ b/thanks-gen
@@ -0,0 +1,16 @@
+#!/usr/bin/perl -nl
+# Use Perl's multi-byte alignment code, via sprintf, while
+# performing a rudimentary check for duplicate names and
+# removing duplicate name,email pairs.
+use Encode;
+BEGIN { my (%seen, %name) }
+my ($name, $email) = split '\0', decode ('UTF-8', $_);
+  and warn "$0: duplicate name: $name\n";
+print encode ('UTF-8', sprintf ('%-36s', $name)), $email
+  unless $seen{"$name\0$email"}++;

reply via email to

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