mirror of
https://github.com/wassname/scikit-image.git
synced 2026-06-28 05:43:17 +08:00
13c4f3cea4
Added tag of previous release Only recent commits for contribs.py so that Travis is happy Do not execute contribs.py for Python 2.6 Do not execute contribs.py for python 2.6
55 lines
1.6 KiB
Python
Executable File
55 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
import subprocess
|
|
import sys
|
|
import string
|
|
import shlex
|
|
|
|
if len(sys.argv) != 2:
|
|
print("Usage: ./contributors.py tag-of-previous-release")
|
|
sys.exit(-1)
|
|
|
|
tag = sys.argv[1]
|
|
|
|
|
|
if not sys.version_info[:2] == (2, 6):
|
|
|
|
def call(cmd):
|
|
return subprocess.check_output(shlex.split(cmd), universal_newlines=True).split('\n')
|
|
|
|
tag_date = call("git show --format='%%ci' %s" % tag)[0]
|
|
print("Release %s was on %s\n" % (tag, tag_date))
|
|
|
|
merges = call("git log --since='%s' --merges --format='>>>%%B' --reverse" % tag_date)
|
|
merges = [m for m in merges if m.strip()]
|
|
merges = '\n'.join(merges).split('>>>')
|
|
merges = [m.split('\n')[:2] for m in merges]
|
|
merges = [m for m in merges if len(m) == 2 and m[1].strip()]
|
|
|
|
num_commits = call("git rev-list %s..HEAD --count" % tag)[0]
|
|
print("A total of %s changes have been committed.\n" % num_commits)
|
|
|
|
print("It contained the following %d merges:\n" % len(merges))
|
|
for (merge, message) in merges:
|
|
if merge.startswith('Merge pull request #'):
|
|
PR = ' (%s)' % merge.split()[3]
|
|
else:
|
|
PR = ''
|
|
|
|
print('- ' + message + PR)
|
|
|
|
|
|
print("\nMade by the following committers [alphabetical by last name]:\n")
|
|
|
|
authors = call("git log --since='%s' --format=%%aN" % tag_date)
|
|
authors = [a.strip() for a in authors if a.strip()]
|
|
|
|
def key(author):
|
|
author = [v for v in author.split() if v[0] in string.ascii_letters]
|
|
if len(author) > 0:
|
|
return author[-1]
|
|
|
|
authors = sorted(set(authors), key=key)
|
|
|
|
for a in authors:
|
|
print('- ' + a)
|