• Pieter Praet's avatar
    Makefile: add 'authors' target · 050beccb
    Pieter Praet authored
    Commits a9ed908a/59fd7f6d removed the majority of our contributors'
    copyright statements due to the maintenance overhead involved in
    keeping it accurate and up to date.
    
    However, besides being in violation of the GPL, this is rather
    discourteous towards our contributors, considering all the time and
    effort they've expended to improve Magit for the good of us all.
    
    Also, if left in its current state, it's only a matter of time before
    people start adding copyright lines again, and "who's maintainer" or
    "who committed the most" are inherently transient metrics, so at some
    point in the future, the list would need to be revised again, manually,
    in every file, no matter what.
    
    Fortunately, this can be easily solved by directly crediting only a
    single entity and consolidating its constituents into an auto-generated
    "AUTHORS.md" file that covers the entire project, allowing us to properly
    credit our contributors as well as permanently retiring the Copyright
    Cleaner hat.
    
    - - -
    
    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.md" file, and an "Author:" line, of which the
    value was procured using:
    
      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
    
    An exception was made for "magit-wip.el", which was introduced by
    Ryan C. Thompson (commit b877584e) but Jonas Bernoulli coded pretty
    much the whole thing (commit 5e2e992b and later).
    
    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.md.in" and written to "AUTHORS.md", 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 are:
    - "aaa707 <aaa707b@gmail.com>"
    - "acple <silentsphere110@gmail.com>"
    - "rabio <rabiodev@o2.pl>"
    ...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.md"
    file, right before tagging a new release.
    Signed-off-by: default avatarPieter Praet <pieter@praet.org>
    050beccb
.mailmap 1.35 KB