Skip to content

Commit

Permalink
Add a CONTRIBUTORS maintenance script.
Browse files Browse the repository at this point in the history
This includes a .mailmap for regularizing contributor ids as well as
handling of the portion of the zinc subtree history before-pants.

Testing Done:
Used the script to re-generate the CONTRIBUTORS.md as seen in this
change.  Also ran the the script to get the contribution roster since
the 0.0.33 release and verified it was accurate by hand:
```console
$ ./build-support/bin/contributors.sh -s release_0.0.33
      2 Eric Ayers
      1 Nick Howard
      1 Kris Wilson
      1 John Sirois
      1 Benjy Weinberger
```

CI went green here:
  https://travis-ci.org/pantsbuild/pants/builds/67089966

Bugs closed: 1695

Reviewed at https://rbcommons.com/s/twitter/r/2377/
  • Loading branch information
jsirois committed Jun 16, 2015
1 parent cb0cc7a commit 8b1706e
Show file tree
Hide file tree
Showing 4 changed files with 179 additions and 104 deletions.
18 changes: 18 additions & 0 deletions .mailmap
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Benjy Weinberger <[email protected]>
Benjy Weinberger <[email protected]>
Brian Wickman <[email protected]>
Craig Schertz <cschertz@CraigLinuxMint.(none)>
John Chee <[email protected]>
John Ioannidis <[email protected]>
Nick Howard <[email protected]>
Nick Howard <[email protected]>
Ugo Di Girolamo <[email protected]>
Dan Davydov <[email protected]>
Fedor Korotkov <[email protected]>
Jon Boulle <[email protected]>
John Sirois <[email protected]>
Larry Hosken <[email protected]>
Leo Kim <[email protected]>
Marius Eriksen <[email protected]>
Mark Chu-Carroll <[email protected]>
Mark McBride <[email protected]>
192 changes: 91 additions & 101 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -1,102 +1,92 @@
Created by running `git shortlog -nse | cut -f2- | sort` and then
manually trimming duplicates and editing missing names.
Created by running `./build-support/bin/contributors.sh`.

Adam Retter <[email protected]>
Alexander Johnson <[email protected]>
Alyssa Pohahau <[email protected]>
Andy Reitz <[email protected]>
Antoine Tollenaere <[email protected]>
Benjy Weinberger <[email protected]>
Bill Farner <[email protected]>
Brian Larson <[email protected]>
Brian Wickman <[email protected]>
Caspar Krieger <[email protected]>
Chris Aniszczyk <[email protected]>
Chris Chen <[email protected]>
Craig <cschertz@CraigLinuxMint.(none)>
Dan Davydov <[email protected]>
Daniel Anderson <[email protected]>
David Taylor <[email protected]>
David Turner <[email protected]>
Divij Rajkumar <[email protected]>
Dominic Hamon <[email protected]>
Dumitru Daniliuc <[email protected]>
Eric Ayers <[email protected]>
Eric Danielson <[email protected]>
Eric Lindvall <[email protected]>
Eugene Yokota <[email protected]>
Evan Jones <[email protected]>
Fedor Korotkov <[email protected]>
Florian Leibert <[email protected]>
Fredrik Ekholdt <[email protected]>
Garrett Malmquist <[email protected]>
Grzegorz Kossakowski <[email protected]>
Harley Cooper <[email protected]>
Hwasung Lee <[email protected]>
Igor Morozov <[email protected]>
Itay Donanhirsh <[email protected]>
Ity Kaul <[email protected]>
Jackson Davis <[email protected]>
Jake Donham <[email protected]>
James Mouradian <[email protected]>
Jason Jackson <[email protected]>
Jeff Jenkins <[email protected]>
Jessica Rosenfield <[email protected]>
Jin Feng <[email protected]>
Joe Crobak <[email protected]>
Joe Ennever <[email protected]>
Joe Smith <[email protected]>
Johan Oskarsson <[email protected]>
John Gallagher <[email protected]>
John Ioannidis <[email protected]>
John Sirois <[email protected]>
John Townsend <[email protected]>
Jonathan Boulle <[email protected]>
Jonathan Coveney <[email protected]>
Jonathan Sokolowski <[email protected]>
Jon Boulle <[email protected]>
Josh Suereth <[email protected]>
Joshua Cohen <[email protected]>
Joshua Humphries <[email protected]>
Ken Kawamoto <[email protected]>
Kevin Sweeney <[email protected]>
Kushal Dave <[email protected]>
Larry Hosken <[email protected]>
Lei Wang <[email protected]>
Leo Kim <[email protected]>
Marc Abramowitz <[email protected]>
Marius Eriksen <[email protected]>
Mark C. Chu-Carroll <[email protected]>
Mark McBride <[email protected]>
Mateo Rodriguez <[email protected]>
Mathew Jennings <[email protected]>
Matthew Jeffryes <[email protected]>
Maxim Khutornenko <[email protected]>
Michael Doherty <[email protected]>
Mike Lindsey <[email protected]>
Misho Krastev <[email protected]>
Neil Sanchala <[email protected]>
Nick Howard <[email protected]>
Nik Shkrob <[email protected]>
Oliver Gould <[email protected]>
Patrick Lawson <[email protected]>
Paul Groudas <[email protected]>
Paul Phillips <[email protected]>
Peiyu Wang <[email protected]>
Peter Seibel <[email protected]>
Peter Vlugter <[email protected]>
Pierre DAL-PRA <[email protected]>
Ryan Williams <[email protected]>
Senthil Kumaran <[email protected]>
Sergey Serebryakov <[email protected]>
Simeon Franklin <[email protected]>
Stu Hood <[email protected]>
Ted Dziuba <[email protected]>
Tejal Desai <[email protected]>
Tien Nguyen <[email protected]>
Tina Huang <[email protected]>
Todd Stumpf <[email protected]>
Tom Dyas <[email protected]>
Tom Howland <[email protected]>
Travis Crawford <[email protected]>
Ugo DG <[email protected]>
Alexander Johnson
Andy Reitz
Antoine Tollenaere
Benjy Weinberger
Bill Farner
Brian Larson
Brian Wickman
Chris Aniszczyk
Chris Chen
Craig Schertz
Dan Davydov
Daniel Anderson
David Taylor
David Turner
Divij Rajkumar
Dominic Hamon
Dumitru Daniliuc
Eric Ayers
Eric Danielson
Eric Lindvall
Evan Jones
Fedor Korotkov
Florian Leibert
Garrett Malmquist
Harley Cooper
Hwasung Lee
Igor Morozov
Itay Donanhirsh
Ity Kaul
Jackson Davis
Jake Donham
James Mouradian
Jason Jackson
Jeff Jenkins
Jessica Rosenfield
Jin Feng
Joe Crobak
Joe Ennever
Joe Smith
Johan Oskarsson
John Chee
John Gallagher
John Ioannidis
John Sirois
John Townsend
Jon Boulle
Jonathan Coveney
Jonathan Sokolowski
Joshua Cohen
Joshua Humphries
Ken Kawamoto
Kevin Sweeney
Kris Wilson
Kushal Dave
Larry Hosken
Lei Wang
Leo Kim
Marc Abramowitz
Marius Eriksen
Mark Chu-Carroll
Mark McBride
Mateo Rodriguez
Mathew Jennings
Matthew Jeffryes
Maxim Khutornenko
Michael Doherty
Mike Lindsey
Misho Krastev
Neil Sanchala
Nick Howard
Nik Shkrob
Oliver Gould
Patrick Lawson
Paul Groudas
Peiyu Wang
Peter Seibel
Ryan Williams
Senthil Kumaran
Sergey Serebryakov
Simeon Franklin
Stu Hood
Ted Dziuba
Tejal Desai
Tien Nguyen
Tina Huang
Todd Stumpf
Tom Dyas
Tom Howland
Travis Crawford
Ugo Di Girolamo
54 changes: 54 additions & 0 deletions build-support/bin/contributors.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#!/usr/bin/env bash

REPO_ROOT=$(cd "$(git rev-parse --show-toplevel)" && pwd)

source ${REPO_ROOT}/build-support/common.sh

function usage() {
echo "Generates contributor lists."
echo
echo "Usage: $0 (-h|-s revision)"
echo " -h print out this help message"
echo " -s generate the contribution roster since the given revision"
echo
echo "By default, CONTRIBUTORS.md is re-generated to account for any new"
echo "since the last re-generation."
echo
echo "If \`-s [revision]\` is specified, then the contribution roster since that"
echo "revision is output. This is useful to generate a thank-you list for"
echo "release announcements by specifying \`-s [previous release tag]\`."

if (( $# > 0 )); then
die "$@"
else
exit 0
fi
}

since=""

while getopts "hs:" opt; do
case ${opt} in
h) usage ;;
s) since="${OPTARG}" ;;
*) usage "Invalid option: -${OPTARG}" ;;
esac
done

function contributors() {
range="${1:-HEAD}"

# Include all commits in range but exclude all commits from the imported zinc tree.
git log --use-mailmap --format=format:%aN ${range} ^imported_zinc_tree
}

if [[ -n "${since}" ]]; then
contributors ${since}..HEAD | sort | uniq -c | sort -rn
else
cat << HEADER > CONTRIBUTORS.md
Created by running \`$0\`.
HEADER

contributors | sort -u >> CONTRIBUTORS.md
fi
19 changes: 16 additions & 3 deletions src/python/pants/docs/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ At a high level, releasing pants involves:
The current list of packages that are part of this release process:

- pantsbuild.pants
- pantsbuild.pants.backend.android
- pantsbuild.pants.contrib.buildgen
- pantsbuild.pants.contrib.scrooge
- pantsbuild.pants.contrib.spindle
- pantsbuild.pants.testinfra

Prepare Release
Expand All @@ -31,11 +35,20 @@ Index](https://pypi.python.org/pypi) per the Python community
convention.

Although the build and publish are automated, the version bumping and
CHANGELOG management are not. You'll need to edit the version number in
CHANGELOG and CONTRIBUTORS management are not.

You'll need to edit the version number in
[src/python/pants/version.py](https://github.com/pantsbuild/pants/tree/master/src/python/pants/version.py)
and add an entry in the CHANGELOG at
[src/python/pants/CHANGELOG.rst](https://github.com/pantsbuild/pants/tree/master/src/python/pants/CHANGELOG.rst)
then send this out for review.
[src/python/pants/CHANGELOG.rst](https://github.com/pantsbuild/pants/tree/master/src/python/pants/CHANGELOG.rst).
You can run `./build-support/bin/release-changelog-helper.sh` to get a
head-start on the CHANGELOG entry.

To bring the CONTRIBUTORS roster in
[CONTRIBUTORS.md](https://github.com/pantsbuild/pants/tree/master/CONTRIBUTORS.md)
up to date you just run `build-support/bin/contributors.sh`.

Finally, send these three changes out for review.

Dry Run
-------
Expand Down

0 comments on commit 8b1706e

Please sign in to comment.