diff --git a/README.md b/README.md index 96775e3f519..d153ca3d653 100644 --- a/README.md +++ b/README.md @@ -147,65 +147,108 @@ Spoon is Free and Open Source, double-licensed under the ([CeCILL-C license](htt ## Github Contributors -Alphabetical order of last names +This list is generated by `chore/generate-contributor-list.py`. If you're not listed or you'd like to have your full name, please post to https://github.com/INRIA/spoon/issues/3909. - git log --pretty="%an" | sed -e '/Spoon Bot/d' | sort -u | awk 'NF>=2 {print "* " $0}' | sort -k3 - -* David Bernard +* adamjryan +* Alcides Fonseca +* Alexander Shopov +* André Cruz +* andrewbwogi +* Antoine Mottier +* argius +* Arnaud Blouin +* Artamm * Artur Bosch -* Egor Bredikhin -* Maxime CLEMENT +* aryan +* Ashutosh Kumar Verma +* aveuiller * Benoit Cornu -* Andre Cruz * Benjamin DANGLOT -* Scott Dickerson -* Yann Diorcet -* Thomas Durieux -* Sergey Fedorov -* Alcides Fonseca -* Clement Fournier -* Jan Galinski -* Nicolas Harrand -* Mickael Istria -* Mehdi Kaytoue -* Urs Keller -* Filip Krakowski -* Lukas Krejci -* Ashutosh Kumar Verma -* Roman Leventov +* César Soto Valero +* Charm +* ChrisSquare +* Christopher Stokes +* Clemens Bartz +* Clément Fournier +* Darius Sas +* Diorcet Yann +* dufaux +* dwayneb +* dya-tel +* Eddie T +* Egor Bredikhin +* Fabien DUMINY +* fangzhen * Fan Long +* fav +* Fernanda Madeiral +* Filip Krakowski +* Gérard Paligot +* gibahjoe +* GluckZhang +* Gregor Zeitlinger +* Haris Adzemovic +* HectorSM +* Horia Constantin +* jakobbraun +* Jan Galinski +* jon * Kai Luo -* Matias Martinez +* Lakshya A Agrawal +* leventov +* Lionel Seinturier +* lodart +* Lukas Krejci * Luke Merrick +* Marcel Manseer +* Marcel Steinbeck * Martin Monperrus -* Vincenzo Musco -* Carlos Noguera -* Gerard Paligot -* Renaud Pawlak +* MartinWitt +* Matias Martinez +* Maxime CLEMENT +* Maxim Stefanov +* Mehdi Kaytoue +* Michael Täge +* Mickael Istria +* Miguel Sozinho Ramalho +* Mikael Forsberg +* Muhammet Ali AKBAY +* Nicolas Harrand * Nicolas Petitprez +* Noah Santschi-Cooney +* Carlos Noguera +* Ondřej Šebek +* Pavel Vojtechovsky +* peroksid90 * Phillip Schichtel -* Lionel Seinturier -* Miguel Sozinho Ramalho -* Marcel Steinbeck -* Christopher Stokes -* Eddie T +* Quentin LE DILAVREC +* raymogg +* Renaud Pawlak +* Rhys Compton +* Rick Kellogg +* Rijnard van Tonder +* Rohitesh Kumar Jain +* Roman Leventov +* santos-samuel +* scootafew +* Scott Dickerson +* Scott Pinwell +* Sébastien Bertrand +* Sergey Fedorov +* Shantanu +* Simon Larsén * Simon Urli -* Pavel Vojtechovsky +* srlm +* ST0NEWALL * Stefan Wolf -* Diorcet Yann -* Gregor Zeitlinger -* Tomasz Zielinski - -Early contributors: - -* Olivier Barais -* David Bernard -* Benoit Cornu -* Favio DeMarco -* Didier Donsez -* Christophe Dufour -* Sebastian Lamelas Marcote -* Matias Martinez -* Carlos Noguera -* Renaud Pawlak -* Nicolas Pessemier +* Thomas Durieux +* tiagodrcarvalho +* Tomasz Zieliński +* Urs Keller +* Vincenzo Musco +* Wolfgang Schmiesing +* Wouter Smeenk +* Wreulicke +* Yann Diorcet +* Zhang Xindong +* Дмитрий diff --git a/chore/generate-contributor-list.py b/chore/generate-contributor-list.py new file mode 100755 index 00000000000..7d140d7f7c2 --- /dev/null +++ b/chore/generate-contributor-list.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +""" +Generate the contributor list for the readme of Spoon at https://github.com/INRIA/spoon/ +""" + +import subprocess + +def get_raw_contributors(): + # git log --pretty="%an" | sort -u + result = subprocess.run(['sh', '-c', 'git log --pretty="%an" | sort -u'], stdout=subprocess.PIPE) + return result.stdout.decode('utf-8').split("\n") + + +def clean(raw_contributors): + cleaned = [] + for i in raw_contributors: + name = i + if len(i) == 0: continue + # full name for pre-Git era commits + if i == 'noguera': name = "Carlos Noguera" # Spoon co-founder + if i == 'renaud': name = "Renaud Pawlak" # Spoon co-founder + if i == 'martin': continue # will be Martin Monperrus + if i == 'matiasmartinez': name = "Matias Martinez" + if i == "martinezmatias": continue + if i == "petitpre": continue # will be Nicolas Petitprez + if i == "seinturier": continue # will be Lionel Seinturier + + # deduplication + if i == 'GerardPaligot': continue # will be "Gérard Paligot" + if i == 'Gerard Paligot': continue # will be "Gérard Paligot" + if i == 'gerard': continue # will be "Gérard Paligot" + if i == 'Gerard': continue # will be "Gérard Paligot" + if i == 'Tomasz Zielinski': continue # will be Tomasz Zielinski + if i == 'tdurieux': continue # will be "Thomas Durieux" + if i == 'bdanglot': continue # will be "Benjamin Danglot" + if i == 'danglotb': continue # will be "Benjamin Danglot" + if i == 'maxcleme': continue # will be "Maxime Clément" + if i == 'Marcel': continue # will be "Marcel Manseer/Steinbeck" + if i == 'Egor18': continue # will be Egor Bredikhin + if i == 'arno': continue # will be "Arnaud Blouin" + if i == 'arno_b': name = "Arnaud Blouin" + if i == 'bcornu': name = "Benoit Cornu" + + # we don't keep bots + if i == 'anonsvn': continue + if i == 'Spoon Bot': continue + if i == 'renovate[bot]': continue + + cleaned.append(name) + return cleaned +def format_to_md(contributors): + return '\n'.join(["* "+x for x in contributors]) + +print(format_to_md(clean(get_raw_contributors())))