[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, THANKS.in.
We'll still have to manually list the names of people who report
problems without a usable patch.
* THANKS.in: 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.
* Makefile.am (THANKS): New rule.
(EXTRA_DIST): Add .mailmap, THANKS.in and thanks-gen.
* .gitignore: Add THANKS and THANKS-to-translators.
* .mailmap: Unify on single address and name-spelling per contributor.
---
.gitignore | 2 +
.mailmap | 25 ++++++++++++++++++--
Makefile.am | 27 +++++++++++++++++++++-
THANKS => THANKS.in | 62 +++++++++-----------------------------------------
thanks-gen | 16 +++++++++++++
5 files changed, 77 insertions(+), 55 deletions(-)
rename THANKS => THANKS.in (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
Makefile
Makefile.in
TAGS
+THANKS
+THANKS-to-translators
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.localdomain>
-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/Makefile.am b/Makefile.am
index b61229d..4fc6e8e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -68,9 +68,11 @@ syntax_check_exceptions = \
EXTRA_DIST = \
$(changelog_etc) \
$(syntax_check_exceptions) \
+ .mailmap \
.prev-version \
.version \
.vg-suppressions \
+ THANKS.in \
THANKS-to-translators \
THANKStt.in \
bootstrap \
@@ -79,7 +81,8 @@ EXTRA_DIST = \
cfg.mk \
dist-check.mk \
gl/modules/getloadavg.diff \
- maint.mk
+ maint.mk \
+ thanks-gen
ALL_RECURSIVE_TARGETS += install-root
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.
+ASSORT = LC_ALL=C sort
+
+# Extract all lines up to the first one starting with "##".
+prologue = perl -ne '/^\#\#/ and exit; print' $(srcdir)/THANKS.in
+
+THANKS: THANKS.in Makefile.am .mailmap thanks-gen .version
+ $(AM_V_GEN) \
+ { \
+ $(prologue); echo; \
+ { perl -ne '/^$$/.../^$$/ and print' $(srcdir)/THANKS.in \
+ | 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:; \
+ } > $@-t && mv $@-t $@
diff --git a/THANKS b/THANKS.in
similarity index 92%
rename from THANKS
rename to THANKS.in
index 311fa5b..b475eef 100644
--- a/THANKS
+++ b/THANKS.in
@@ -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 http://barrkel.blogspot.com/
@@ -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 twaugh@redhat
-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) }
+
+chomp;
+my ($name, $email) = split '\0', decode ('UTF-8', $_);
+
+$seen{$name}++
+ and warn "$0: THANKS.in: duplicate name: $name\n";
+
+print encode ('UTF-8', sprintf ('%-36s', $name)), $email
+ unless $seen{"$name\0$email"}++;
--
1.7.3.4
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [coreutils] [PATCH] maint: generate much of the THANKS file,
Jim Meyering <=