A member of the "Magit Owners Team" [1] has recently taken it upon
himself to "update" the authorship information, in effect *purging*
pretty much the entire list of contributors [2,3], stating that it
"[has] not been updated in a very long time".

This statement is patently false, since Phil Jackson updated it as
recently as February of this year [4].  Even if it were true, this isn't
the kind of decision that should be made unilaterally, without so much
as a courtesy email to the mailing list.

Removing others' copyright statements is not just a violation of the
GPL, it's also an disturbing display of disrespect for all the time and
effort our contributors have expended to improve Magit for the good of
us all.  Giving credit where it's due, besides being common courtesy,
is one of the cornerstones of FOSS development.

But [2,3] also states "it is not feasible anymore to have a copyright
line in `magit.el' for everyone", so... let's keep all the authorship
information in an AUTHORS file instead.

I've globally replaced the copyright headers with a copyright statement
crediting "The Magit Project Developers" (do note that this is *not*
equivalent to "copyright assignment") with the correct copyright year(s),
a pointer to the AUTHORS file, and an "Author:" line, of which the value
was procured using:

#+begin_src sh :results verbatim
  for i in *.el ; do
      printf "%s\n  %s\n\n" \
          "${i}" \
          "$(git log --pretty=format:'%h : [%ai] %aN <%aE>' -- "${i}" | tail -n 
1)" ;
  done
#+end_src

An exception was made for "magit-wip.el", where Ryan C. Thompson may
have introduced the file, but Jonas Bernoulli did code pretty much
the whole thing.

Files containing code borrowed from other projects (specifically
"magit-blame.el" and "magit-compat.el") now state the relevant
projects' names, URLs and licenses, right below the "Author:" line.

The Makefile now contains targets which use git-log(1) to generate an
unabridged list of our contributors' names and email addresses, which
is combined with "AUTHORS.in" and written to "AUTHORS", which is always
included when rolling tarballs and installing.

To prevent incomplete/duplicate/outdated/erroneous authors' names and
email addresses, a ".mailmap" file was created, which is automatically
picked up by git-log(1) when using %aN/%aE instead of %an/%ae.

The only contributors for whom I couldn't find any conclusive info
(in a reasonable amount of time) are "rabio <rabiodev at o2.pl>" and
"acple <[email protected]>", so these are included as-is.

And thus the only maintenance overhead left to keeping this list up to
date is running "make authors" and committing the updated AUTHORS file,
right before tagging a new release.

[1] https://github.com/magit?tab=members
[2] commit a9ed908addc2b2b1fcdd4aabefe6befd1d0505b9
[3] commit 59fd7f6d2edc1d63449c85f616e8d169313633ed
[4] commit ca0f48162e2d6eb6c447d9cc393c54cc43fadab5

Signed-off-by: Pieter Praet <[email protected]>
---
 .mailmap          | 20 ++++++++++++++++++++
 AUTHORS.in        | 20 ++++++++++++++++++++
 Makefile          | 28 +++++++++++++++++++++++-----
 magit-bisect.el   |  6 +++++-
 magit-blame.el    | 15 ++++++++-------
 magit-cherry.el   |  8 +++++++-
 magit-compat.el   | 11 ++++++++++-
 magit-flow.el     |  8 +++++++-
 magit-key-mode.el |  6 +++++-
 magit-stgit.el    |  6 +++++-
 magit-svn.el      | 13 +++++--------
 magit-topgit.el   |  7 +++++--
 magit-wip.el      |  7 +++++--
 magit.el          | 27 +++++++--------------------
 rebase-mode.el    |  9 +++++++--
 15 files changed, 139 insertions(+), 52 deletions(-)
 create mode 100644 .mailmap
 create mode 100644 AUTHORS.in

diff --git a/.mailmap b/.mailmap
new file mode 100644
index 0000000..bd96043
--- /dev/null
+++ b/.mailmap
@@ -0,0 +1,20 @@
+Alex Ott <[email protected]> <[email protected]>
+Seong-Kook Shin <[email protected]>
+David Abrahams <[email protected]>
+Evgkeni Sampelnikof <[email protected]> <[email protected]>
+Evgkeni Sampelnikof <[email protected]> <[email protected]>
+Jesse Alama <[email protected]> <[email protected]>
+Jonas Bernoulli <[email protected]> <[email protected]>
+Leo Liu <[email protected]>
+Marc Herbert <[email protected]> <[email protected]>
+Marius Vollmer <[email protected]> <[email protected]>
+Marius Vollmer <[email protected]> <[email protected]>
+Marius Vollmer <[email protected]> <mvo@bright.(none)>
+Marius Vollmer <[email protected]> <[email protected]>
+Marius Vollmer <[email protected]> <mvo@manamana.(none)>
+Oscar Fuentes <[email protected]> <oscar@nc10>
+Oscar Fuentes <[email protected]> <oscar@qcore>
+Peter J. Weisberg <[email protected]>
+Rémi Vanicat <[email protected]> <[email protected]>
+Yann Hodique <[email protected]> <[email protected]>
+Yann Hodique <[email protected]> <[email protected]>
diff --git a/AUTHORS.in b/AUTHORS.in
new file mode 100644
index 0000000..86eefe5
--- /dev/null
+++ b/AUTHORS.in
@@ -0,0 +1,20 @@
+Names Sorted Alphabetically:
+
+## Author:
+
+   Marius Vollmer <[email protected]>
+
+## Maintainers:
+
+   Jonas Bernoulli <[email protected]>
+   Nicolas Dudebout <[email protected]>
+   Rémi Vanicat <[email protected]>
+   Yann Hodique <[email protected]>
+
+## Retired Maintainers:
+
+   Peter J. Weisberg <[email protected]>
+   Phil Jackson <[email protected]>
+
+## Contributors:
+
diff --git a/Makefile b/Makefile
index 90caa46..5a1a7dd 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,8 @@
 PREFIX  ?= /usr/local
-lispdir ?= $(PREFIX)/share/emacs/site-lisp/magit
-infodir ?= $(PREFIX)/share/info
+datarootdir ?= $(PREFIX)/share
+lispdir ?= $(datarootdir)/emacs/site-lisp/magit
+infodir ?= $(datarootdir)/info
+docdir  ?= $(datarootdir)/doc/magit
 execdir ?= $(PREFIX)/bin
 
 LOADDEFS_FILE ?= magit-autoloads.el
@@ -78,6 +80,7 @@ help:
        $(info Release Managment)
        $(info =================)
        $(info )
+       $(info make authors          - regenerate the AUTHORS file)
        $(info make dist             - create old-school tarball)
        $(info make marmalade        - create marmalade tarball)
        @echo ""
@@ -107,7 +110,7 @@ $(LOADDEFS_FILE): $(ELS)
         (make-backup-files nil))\
     (update-directory-autoloads \".\")))"
 
-docs: magit.info dir
+docs: magit.info dir AUTHORS
 
 %.info: %.texi
        $(MAKEINFO) $< -o $@
@@ -115,6 +118,19 @@ docs: magit.info dir
 dir: magit.info
        $(INSTALL_INFO) --dir=$@ $<
 
+# Not a phony target, but needs to run *every* time.
+.PHONY: AUTHORS
+AUTHORS: AUTHORS.in
+       @printf "Generating AUTHORS file..."
+       @test -d .git \
+               && (cat $< > $@ \
+                       && git log --pretty=format:'   %aN <%aE>' | sort -u >> 
$@ \
+                       && printf "FINISHED\n" ; ) \
+               || printf "FAILED (non-fatal)\n"
+
+.PHONY: authors
+authors: AUTHORS
+
 install: install-lisp install-docs
 install-all: install install-script
 
@@ -128,6 +144,8 @@ install-docs: docs
        $(MKDIR) $(DESTDIR)$(infodir)
        $(CP) magit.info $(DESTDIR)$(infodir)
        $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) 
$(DESTDIR)$(infodir)/magit.info
+       $(MKDIR) $(DESTDIR)$(docdir)
+       $(CP) AUTHORS $(DESTDIR)$(docdir)
 
 install-script: bin/magit
        $(MKDIR) $(DESTDIR)$(execdir)
@@ -143,11 +161,11 @@ clean:
        rm -fr magit-$(VERSION) magit.spec *.tar.gz *.tar
        test -e .git || rm -f magit.info
 
-DIST_FILES  = $(ELS) magit-version.el Makefile
+DIST_FILES  = $(ELS) magit-version.el Makefile AUTHORS
 DIST_FILES += README.md INSTALL.md magit.texi magit.info dir
 DIST_FILES_BIN  = bin/magit
 
-ELPA_FILES = $(ELS) magit.info dir
+ELPA_FILES = $(ELS) magit.info dir AUTHORS
 
 dist: magit-$(VERSION).tar.gz
 
diff --git a/magit-bisect.el b/magit-bisect.el
index dea03b9..ff33e3a 100644
--- a/magit-bisect.el
+++ b/magit-bisect.el
@@ -1,6 +1,10 @@
 ;;; magit-bisect.el --- bisect support for Magit
 
-;; Copyright (C) 2011  Moritz Bunkus
+;; Copyright (C) 2011-2013  The Magit Project Developers.
+;;
+;; For a full list of contributors, see the AUTHORS file
+;; at the top-level directory of this distribution and at
+;; https://raw.github.com/magit/magit/master/AUTHORS
 
 ;; Author: Moritz Bunkus <[email protected]>
 
diff --git a/magit-blame.el b/magit-blame.el
index 2cfa7f6..c8914c4 100644
--- a/magit-blame.el
+++ b/magit-blame.el
@@ -1,15 +1,16 @@
 ;;; magit-blame.el --- blame support for Magit
 
-;; Copyright (C) 2008  Linh Dang
-;; Copyright (C) 2008  Marius Vollmer
-;; Copyright (C) 2009  Tim Moore
-;; Copyright (C) 2010  Alexander Prusov
-;; Copyright (C) 2011  byplayer
-;; Copyright (C) 2012  Rüdiger Sonderfeld
-;; Copyright (C) 2012  Yann Hodique
+;; Copyright (C) 2012-2013  The Magit Project Developers.
+;;
+;; For a full list of contributors, see the AUTHORS file
+;; at the top-level directory of this distribution and at
+;; https://raw.github.com/magit/magit/master/AUTHORS
 
 ;; Author: Yann Hodique <[email protected]>
 
+;; Contains code from Egg (Emacs Got Git) <https://github.com/byplayer/egg>,
+;; released under the GNU General Public License version 3.
+
 ;; Magit is free software; you can redistribute it and/or modify it
 ;; under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation; either version 3, or (at your option)
diff --git a/magit-cherry.el b/magit-cherry.el
index ddd749a..0783ced 100644
--- a/magit-cherry.el
+++ b/magit-cherry.el
@@ -1,6 +1,12 @@
 ;;; magit-cherry.el --- "git cherry" support for Magit
 
-;; Copyright (C) 2013  Moritz Bunkus
+;; Copyright (C) 2013  The Magit Project Developers.
+;;
+;; For a full list of contributors, see the AUTHORS file
+;; at the top-level directory of this distribution and at
+;; https://raw.github.com/magit/magit/master/AUTHORS
+
+;; Author: Moritz Bunkus <[email protected]>
 
 ;; Magit is free software; you can redistribute it and/or modify it
 ;; under the terms of the GNU General Public License as published by
diff --git a/magit-compat.el b/magit-compat.el
index 0fa5be4..b15221b 100644
--- a/magit-compat.el
+++ b/magit-compat.el
@@ -1,6 +1,15 @@
 ;;; magit-compat.el --- compatibility code for Magit
 
-;; Copyright (C) 2013  Jonas Bernoulli
+;; Copyright (C) 2013  The Magit Project Developers.
+;;
+;; For a full list of contributors, see the AUTHORS file
+;; at the top-level directory of this distribution and at
+;; https://raw.github.com/magit/magit/master/AUTHORS
+
+;; Author: Jonas Bernoulli <[email protected]>
+
+;; Contains code from GNU Emacs <https://www.gnu.org/software/emacs/>,
+;; released under the GNU General Public License version 3.
 
 ;; Magit is free software; you can redistribute it and/or modify it
 ;; under the terms of the GNU General Public License as published by
diff --git a/magit-flow.el b/magit-flow.el
index 9790944..938adb0 100644
--- a/magit-flow.el
+++ b/magit-flow.el
@@ -1,6 +1,12 @@
 ;;; magit-flow.el --- git-flow plug-in for Magit
 
-;; Copyright (C) 2012  Phil Jackson
+;; Copyright (C) 2013  The Magit Project Developers.
+;;
+;; For a full list of contributors, see the AUTHORS file
+;; at the top-level directory of this distribution and at
+;; https://raw.github.com/magit/magit/master/AUTHORS
+
+;; Author: Phil Jackson <[email protected]>
 
 ;; Magit is free software; you can redistribute it and/or modify it
 ;; under the terms of the GNU General Public License as published by
diff --git a/magit-key-mode.el b/magit-key-mode.el
index 480d084..2bf7010 100644
--- a/magit-key-mode.el
+++ b/magit-key-mode.el
@@ -1,6 +1,10 @@
 ;;; magit-key-mode.el --- interactively tune git invocation
 
-;; Copyright (C) 2010-2011  Phil Jackson
+;; Copyright (C) 2010-2013  The Magit Project Developers.
+;;
+;; For a full list of contributors, see the AUTHORS file
+;; at the top-level directory of this distribution and at
+;; https://raw.github.com/magit/magit/master/AUTHORS
 
 ;; Author: Phil Jackson <[email protected]>
 
diff --git a/magit-stgit.el b/magit-stgit.el
index 1f9d5c2..ca335a0 100644
--- a/magit-stgit.el
+++ b/magit-stgit.el
@@ -1,6 +1,10 @@
 ;;; magit-stgit.el --- StGit plug-in for Magit
 
-;; Copyright (C) 2011  Lluís Vilanova
+;; Copyright (C) 2011-2013  The Magit Project Developers.
+;;
+;; For a full list of contributors, see the AUTHORS file
+;; at the top-level directory of this distribution and at
+;; https://raw.github.com/magit/magit/master/AUTHORS
 
 ;; Author: Lluís Vilanova <[email protected]>
 
diff --git a/magit-svn.el b/magit-svn.el
index d2e3512..4e6f985 100644
--- a/magit-svn.el
+++ b/magit-svn.el
@@ -1,13 +1,10 @@
 ;;; magit-svn.el --- git-svn plug-in for Magit
 
-;; Copyright (C) 2008  Alex Ott
-;; Copyright (C) 2008  Linh Dang
-;; Copyright (C) 2008  Marcin Bachry
-;; Copyright (C) 2008-2009  Marius Vollmer
-;; Copyright (C) 2009  Alexey Voinov
-;; Copyright (C) 2009  John Wiegley
-;; Copyright (C) 2010  Yann Hodique
-;; Copyright (C) 2010-2011  Phil Jackson
+;; Copyright (C) 2010-2013  The Magit Project Developers.
+;;
+;; For a full list of contributors, see the AUTHORS file
+;; at the top-level directory of this distribution and at
+;; https://raw.github.com/magit/magit/master/AUTHORS
 
 ;; Author: Phil Jackson <[email protected]>
 
diff --git a/magit-topgit.el b/magit-topgit.el
index e4e1e7f..a77af59 100644
--- a/magit-topgit.el
+++ b/magit-topgit.el
@@ -1,7 +1,10 @@
 ;;; magit-topgit.el --- topgit plug-in for Magit
 
-;; Copyright (C) 2010  Nathan Weizenbaum
-;; Copyright (C) 2010-2013  Yann Hodique
+;; Copyright (C) 2010-2013  The Magit Project Developers.
+;;
+;; For a full list of contributors, see the AUTHORS file
+;; at the top-level directory of this distribution and at
+;; https://raw.github.com/magit/magit/master/AUTHORS
 
 ;; Author: Yann Hodique <[email protected]>
 
diff --git a/magit-wip.el b/magit-wip.el
index d3244b5..f7a64cc 100644
--- a/magit-wip.el
+++ b/magit-wip.el
@@ -1,7 +1,10 @@
 ;;; magit-wip.el --- git-wip plug-in for Magit
 
-;; Copyright (C) 2012-2013  Jonas Bernoulli
-;; Copyright (C) 2012  Ryan C. Thompson
+;; Copyright (C) 2012-2013  The Magit Project Developers.
+;;
+;; For a full list of contributors, see the AUTHORS file
+;; at the top-level directory of this distribution and at
+;; https://raw.github.com/magit/magit/master/AUTHORS
 
 ;; Author: Jonas Bernoulli <[email protected]>
 
diff --git a/magit.el b/magit.el
index 48189fb..5d5fa7a 100644
--- a/magit.el
+++ b/magit.el
@@ -1,25 +1,12 @@
 ;;; magit.el --- control Git from Emacs
 
-;; Copyright (C) 2008-2009  Marius Vollmer
-;; Copyright (C) 2009-2013  Rémi Vanicat
-;; Copyright (C) 2009-2013  Phil Jackson
-;; Copyright (C) 2010-2013  Yann Hodique
-;; Copyright (C) 2011-2012  Peter J Weisberg
-;; Copyright (C) 2011-2012  Nicolas Dudebout
-;; Copyright (C) 2012-2013  Jonas Bernoulli
-
-;; All-Contributors: <https://github.com/magit/magit/contributors>
-;; All-Maintainers:  <https://github.com/magit?tab=members>
-
-;; Author: Marius Vollmer <[email protected]>
-;; Former-Maintainers:
-;;     Phil Jackson      <[email protected]>
-;;     Peter J Weisberg  <[email protected]>
-;; Maintainers:
-;;     Jonas Bernoulli   <[email protected]>
-;;     Yann Hodique      <[email protected]>
-;;     Nicolas Dudebout  <[email protected]>
-;;     Rémi Vanicat      <[email protected]>
+;; Copyright (C) 2008-2013  The Magit Project Developers.
+;;
+;; For a full list of contributors, see the AUTHORS file
+;; at the top-level directory of this distribution and at
+;; https://raw.github.com/magit/magit/master/AUTHORS
+
+;; Author: Marius Vollmer <[email protected]>
 
 ;; Keywords: tools
 
diff --git a/rebase-mode.el b/rebase-mode.el
index a2720f2..8865f4d 100644
--- a/rebase-mode.el
+++ b/rebase-mode.el
@@ -1,7 +1,12 @@
 ;;; rebase-mode -- edit git rebase files
 
-;; Copyright (C) 2010  Phil Jackson
-;; Copyright (C) 2011  Peter J Weisberg
+;; Copyright (C) 2010-2013  The Magit Project Developers.
+;;
+;; For a full list of contributors, see the AUTHORS file
+;; at the top-level directory of this distribution and at
+;; https://raw.github.com/magit/magit/master/AUTHORS
+
+;; Author: Phil Jackson <[email protected]>
 
 ;; Magit is free software; you can redistribute it and/or modify it
 ;; under the terms of the GNU General Public License as published by
-- 
1.7.11.1

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"magit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to