-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generate AUTHORS using git log #1594
Merged
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
Adam Wentz <[email protected]> | ||
Alex Grönholm <[email protected]> | ||
Alex Grönholm <[email protected]> <[email protected]> | ||
Anatoly Techtonik <[email protected]> | ||
Andrey Bulgakov <[email protected]> | ||
<[email protected]> <[email protected]> | ||
Andrei Geacar <[email protected]> unknown <hakaton@Anam-mbl.(none)> | ||
Ben Rosser <[email protected]> | ||
<[email protected]> <[email protected]> | ||
<[email protected]> <[email protected]> | ||
Daniel Holth <[email protected]> | ||
<[email protected]> <[email protected]> | ||
Endoh Takanao <[email protected]> | ||
Erik M. Bray <[email protected]> | ||
Gabriel de Perthuis <[email protected]> | ||
Geoffrey Lehée <[email protected]> | ||
Hsiaoming Yang <[email protected]> | ||
Ilya Baryshev <[email protected]> | ||
Jakub Stasiak <[email protected]> | ||
John-Scott Atlakson <[email protected]> | ||
Jorge Niedbalski <[email protected]> | ||
<[email protected]> <[email protected]> | ||
Markus Hametner <[email protected]> | ||
Masklinn <[email protected]> | ||
<[email protected]> <[email protected]> | ||
Preston Holmes <[email protected]> | ||
Przemek Wrzos <hetmankp@none> | ||
<[email protected]> <[email protected]> | ||
Thomas Johansson <devnull@localhost> prencher <devnull@localhost> | ||
Yoval P <[email protected]> | ||
Zhiping Deng <[email protected]> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,120 +1,134 @@ | ||
Alex Gaynor | ||
Alex Grönholm | ||
Alex Morega | ||
Alexandre Conrad | ||
Andrey Bulgakov | ||
Anrs Hu | ||
Anton Patrushev | ||
Antti Kaihola | ||
Armin Ronacher | ||
Aziz Köksal | ||
Ben Rosser | ||
Bernardo B. Marques | ||
Bradley Ayers | ||
Brian Rosner | ||
Carl Meyer | ||
Chris McDonough | ||
Christian Oudard | ||
Clay McClure | ||
Cody Soyland | ||
Craig Kerstiens | ||
Cristian Sorinel | ||
Dan Sully | ||
Daniel Holth | ||
Dave Abrahams | ||
David (d1b) | ||
David Aguilar | ||
David Evans | ||
David Pursehouse | ||
dengzhp | ||
Dmitry Gladkov | ||
Donald Stufft | ||
Endoh Takanao | ||
enoch | ||
Erik M. Bray | ||
Francesco | ||
Gabriel de Perthuis | ||
Garry Polley | ||
Geoffrey Lehée | ||
George Song | ||
Georgi Valkov | ||
Herbert Pfennig | ||
hetmankp | ||
Hugo Lopes Tavares | ||
Hynek Schlawack | ||
Ian Bicking | ||
Igor Sobreira | ||
Ionel Maries Cristian | ||
Jakub Vysoky | ||
James Cleveland | ||
Jannis Leidel | ||
Jakub Stasiak | ||
Jay Graves | ||
Jeff Dairiki | ||
John-Scott Atlakson | ||
Jon Parise | ||
Jonas Nockert | ||
Jon Parise | ||
Jorge Niedbalski | ||
Josh Bronson | ||
Josh Hansen | ||
Kamal Bin Mustafa | ||
Kelsey Hightower | ||
Kenneth Belitzky | ||
Kenneth Reitz | ||
Kevin Frommelt | ||
Kumar McMillan | ||
Lev Givon | ||
Lincoln de Sousa | ||
Luke Macken | ||
Masklinn | ||
Marc Abramowitz | ||
Marc Tamlyn | ||
Marcus Smith | ||
Markus Hametner | ||
Matt Maker | ||
Maxime Rouyrre | ||
Michael Williamson | ||
Miguel Araujo Perez | ||
Monty Taylor | ||
Nick Stenning | ||
Nowell Strite | ||
Oliver Tonnhofer | ||
Olivier Girardot | ||
Ollie Rutherfurd | ||
Oren Held | ||
Patrick Jenkins | ||
Patrick Dubroy | ||
Paul Moore | ||
Paul Nasrat | ||
Paul Oswald | ||
Paul van der Linden | ||
Peter Waller | ||
Phil Freo | ||
Phil Whelan | ||
Piet Delport | ||
Preston Holmes | ||
Przemek Wrzos | ||
Qiangning Hong | ||
Rafael Caricio | ||
Rene Dudfield | ||
Roey Berman | ||
Ronny Pfannschmidt | ||
Rory McCann | ||
Ross Brattain | ||
Sergey Vasilyev | ||
Seth Woodworth | ||
Simon Cross | ||
Stavros Korokithakis | ||
Stéphane Klein | ||
Steven Myint | ||
Takayuki SHIMIZUKAWA | ||
Thomas Fenzl | ||
Thomas Johansson | ||
Toshio Kuratomi | ||
Travis Swicegood | ||
Vinay Sajip | ||
Vitaly Babiy | ||
W. Trevor King | ||
Wil Tan | ||
Hsiaoming Yang | ||
Adam Wentz <[email protected]> | ||
Alex Gaynor <[email protected]> | ||
Alex Grönholm <[email protected]> | ||
Alex Morega <[email protected]> | ||
Alexandre Conrad <[email protected]> | ||
Anatoly Techtonik <[email protected]> | ||
Andrei Geacar <[email protected]> | ||
Andrey Bulgakov <[email protected]> | ||
Anrs Hu <[email protected]> | ||
Anton Patrushev <[email protected]> | ||
Antti Kaihola <[email protected]> | ||
Armin Ronacher <[email protected]> | ||
Ashley Manton <[email protected]> | ||
Baptiste Mispelon <[email protected]> | ||
Ben Darnell <[email protected]> | ||
Ben Rosser <[email protected]> | ||
Bernardo B. Marques <[email protected]> | ||
Bradley Ayers <[email protected]> | ||
Brian Rosner <[email protected]> | ||
Carl Meyer <[email protected]> | ||
Chris McDonough <[email protected]> | ||
Christian Oudard <[email protected]> | ||
Clay McClure <[email protected]> | ||
Cody Soyland <[email protected]> | ||
Craig Kerstiens <[email protected]> | ||
Cristian Sorinel <[email protected]> | ||
Dan Sully <[email protected]> | ||
Daniel Holth <[email protected]> | ||
Daniel Jost <[email protected]> | ||
Dave Abrahams <[email protected]> | ||
david <[email protected]> | ||
David Aguilar <[email protected]> | ||
David Evans <[email protected]> | ||
David Pursehouse <[email protected]> | ||
Dmitry Gladkov <[email protected]> | ||
Donald Stufft <[email protected]> | ||
Dongweiming <[email protected]> | ||
Endoh Takanao <[email protected]> | ||
enoch <[email protected]> | ||
Erik M. Bray <[email protected]> | ||
Francesco <[email protected]> | ||
Gabriel de Perthuis <[email protected]> | ||
Garry Polley <[email protected]> | ||
Geoffrey Lehée <[email protected]> | ||
George Song <[email protected]> | ||
Georgi Valkov <[email protected]> | ||
Herbert Pfennig <[email protected]> | ||
Hsiaoming Yang <[email protected]> | ||
Hugo Lopes Tavares <[email protected]> | ||
Hynek Schlawack <[email protected]> | ||
Ian Bicking <[email protected]> | ||
Igor Sobreira <[email protected]> | ||
Ilya Baryshev <[email protected]> | ||
Ionel Maries Cristian <[email protected]> | ||
Jakub Stasiak <[email protected]> | ||
Jakub Vysoky <[email protected]> | ||
James Cleveland <[email protected]> | ||
Jannis Leidel <[email protected]> | ||
Jay Graves <[email protected]> | ||
Jeff Dairiki <[email protected]> | ||
Jim Garrison <[email protected]> | ||
John-Scott Atlakson <[email protected]> | ||
Jon Parise <[email protected]> | ||
Jonas Nockert <[email protected]> | ||
Jorge Niedbalski <[email protected]> | ||
Josh Bronson <[email protected]> | ||
Josh Hansen <[email protected]> | ||
Kamal Bin Mustafa <[email protected]> | ||
Kelsey Hightower <[email protected]> | ||
Kenneth Belitzky <[email protected]> | ||
Kenneth Reitz <[email protected]> | ||
Kevin Frommelt <[email protected]> | ||
Kumar McMillan <[email protected]> | ||
Lev Givon <[email protected]> | ||
Lincoln de Sousa <[email protected]> | ||
Luke Macken <[email protected]> | ||
Marc Abramowitz <[email protected]> | ||
Marc Tamlyn <[email protected]> | ||
Marcus Smith <[email protected]> | ||
Markus Hametner <[email protected]> | ||
Masklinn <[email protected]> | ||
Matt Maker <[email protected]> | ||
Matthew Iversen <[email protected]> | ||
Maxime Rouyrre <[email protected]> | ||
Michael Williamson <[email protected]> | ||
Miguel Araujo Perez <[email protected]> | ||
Monty Taylor <[email protected]> | ||
Nick Stenning <[email protected]> | ||
Nowell Strite <[email protected]> | ||
Oliver Tonnhofer <[email protected]> | ||
Olivier Girardot <[email protected]> | ||
Ollie Rutherfurd <[email protected]> | ||
Oren Held <[email protected]> | ||
Oscar Benjamin <[email protected]> | ||
Patrick Dubroy <[email protected]> | ||
Patrick Jenkins <[email protected]> | ||
Paul Moore <[email protected]> | ||
Paul Nasrat <[email protected]> | ||
Paul Oswald <[email protected]> | ||
Paul van der Linden <[email protected]> | ||
Peter Waller <[email protected]> | ||
Phil Freo <[email protected]> | ||
Phil Whelan <[email protected]> | ||
Piet Delport <[email protected]> | ||
Preston Holmes <[email protected]> | ||
Przemek Wrzos <hetmankp@none> | ||
Qiangning Hong <[email protected]> | ||
Rafael Caricio <[email protected]> | ||
Ralf Schmitt <[email protected]> | ||
Rene Dudfield <[email protected]> | ||
Roey Berman <[email protected]> | ||
Ronny Pfannschmidt <[email protected]> | ||
Rory McCann <[email protected]> | ||
Ross Brattain <[email protected]> | ||
Sergey Vasilyev <[email protected]> | ||
Seth Woodworth <[email protected]> | ||
Simon Cross <[email protected]> | ||
Stavros Korokithakis <[email protected]> | ||
Stefan Scherfke <[email protected]> | ||
Steven Myint <[email protected]> | ||
Stéphane Klein <[email protected]> | ||
Takayuki SHIMIZUKAWA <[email protected]> | ||
Thomas Fenzl <[email protected]> | ||
Thomas Johansson <devnull@localhost> | ||
Toshio Kuratomi <[email protected]> | ||
Travis Swicegood <[email protected]> | ||
Vinay Sajip <[email protected]> | ||
Vitaly Babiy <[email protected]> | ||
W. Trevor King <[email protected]> | ||
Wil Tan <[email protected]> | ||
Yoval P <[email protected]> | ||
Yu Jian <[email protected]> | ||
Zearin <[email protected]> | ||
Zhiping Deng <[email protected]> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -66,7 +66,7 @@ def find_version(*file_paths): | |
author_email='[email protected]', | ||
url='http://www.pip-installer.org', | ||
license='MIT', | ||
packages=find_packages(exclude=["contrib", "docs", "tests*"]), | ||
packages=find_packages(exclude=["contrib", "docs", "tests*", "tasks"]), | ||
package_data={ | ||
'pip._vendor.requests': ['*.pem'], | ||
'pip._vendor.distlib._backport': ['sysconfig.cfg'], | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
import invoke | ||
|
||
from . import generate | ||
|
||
ns = invoke.Collection(generate) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
import io | ||
|
||
import invoke | ||
|
||
|
||
@invoke.task | ||
def authors(): | ||
print("[generate.authors] Generating AUTHORS") | ||
|
||
# Get our list of authors | ||
print("[generate.authors] Collecting author names") | ||
r = invoke.run("git log --use-mailmap --format'=%aN <%aE>'", hide=True) | ||
authors = [] | ||
seen_authors = set() | ||
for author in r.stdout.splitlines(): | ||
author = author.strip() | ||
if author.lower() not in seen_authors: | ||
seen_authors.add(author.lower()) | ||
authors.append(author) | ||
|
||
# Sort our list of Authors by their case insensitive name | ||
authors = sorted(authors, key=lambda x: x.lower()) | ||
|
||
# Write our authors to the AUTHORS file | ||
print("[generate.authors] Writing AUTHORS") | ||
with io.open("AUTHORS.txt", "w", encoding="utf8") as fp: | ||
fp.write(u"\n".join(authors)) | ||
fp.write(u"\n") |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok, so just install
invoke
locally so you can run these tasks?and at some point, maybe we'll add more tasks for the whole release process?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that's the long term goal, that we can cut a release of pip with just
inv release
or maybeinv release <version>
or something like that.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
\o/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the record, you can run this as
inv(oke) generate.authors
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From the PyPI entry, invoke doesn't mention being Windows compatible, and the docs don't say anything one way or the other. I've never done a release, so it doesn't really matter at the moment, but are we committing to a release process that won't run on Windows here? (We may already have a release process that won't run on Windows, of course, I don't know for certain).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah yea invoke doesn't work on Windows. Not sure if it ever will. Let me ask @bitprophet if that is ever planned.
I'd rather not (poorly) reinvent the Wheel by writing our own invoke, and the alternatives are all either worse or don't work on Windows either afaik. Given that Linux and *nix os's are generally free and worst case scenario can be put on a VM at no cost inside a Windows machine I'm less worried about that. I don't want to sound like I'm discounting Windows though- Are you aware of anything like Invoke that works well that works on Windows?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To be honest, I didn't do more than glance at the invoke docs, because the discussion here got me curious. I know doit is somewhat similar and does work on Windows, but its API is a bit quirky, so I'm not recommending it. As I say, I don't really mind one way or the other - I doubt I'll be doing a release in the foreseeable future, so it's certainly not something to block this change on.
From what I see here, I'm not 100% sure I see the gain from invoke over just a Python script using subprocess.check_call. But maybe it's more about flexibility for the future.
Regardless, not something to worry about unduly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea, the basic reason for not just using a python script is that I want to consolidate them :) We have a couple of python scripts laying around and I'd like everything to be available and discoverable from within invoke. It's also just the first step. Ideally we'll end up with a number of tasks that automate the various processes we have around pip, including releasing, and have it all done in one central location.
I talked to @bitprophet and he said that he's not planning on doing any Windows support himself, and he's not willing to seriously hamstring the invoke code base to support Windows, but that patches are welcome. He recognizes that Windows is a sizable minority but is unable to do the work himself. So if it becomes a problem in the future where we need Windows support we have a path forward where we can contribute patches to invoke.
By the way, I know it's less than ideal but we also have 2k a month worth of free servers too. If you want a persistent Linux box for dealing with pip on *nix I can spin one up for you. (They also support Windows servers, i've used them from time to time to test stuff on Windows).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. I'll probably look into what's involved in Windows support for invoke (task-runner tools are something I'm interested in anyway, I just hadn't seen invoke before, that's why I got curious in the first place). After all, I have so much free time :-)
A Unix box isn't a big problem - my PC is plenty big enough to run a VM locally. I just tend not to end up using a Unix environment day to day, so it gets stale & out of date. It's just as easy tbh to run one up from scratch when I need one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where do you see that
invoke
usespexpect
andpty
?edit: ahh, vendored.
I know of fabricate.py which is a little more self-contained (it's a simple module you can drop in anywhere) and advertises working on Windows.
I can't see anywhere that invoke says it doesn't work on Windows though :S