diff --git a/.github/CONTRIBUTORS-template.md b/.github/CONTRIBUTORS-template.md new file mode 100644 index 00000000..d8ba28c6 --- /dev/null +++ b/.github/CONTRIBUTORS-template.md @@ -0,0 +1,56 @@ +# Contributors + +## Core Developers + +These contributors have commit flags for the repository, and are able to +accept and merge pull requests. + + + + + + + + {%- for contributor in core_contributors %} + + + + + + {%- endfor %} +
NameGithubTwitter
{{ contributor.name }} + {{ contributor.github_login }} + {{ contributor.twitter_username }}
+ +*Audrey is also the creator of Cookiecutter. Audrey and Daniel are on +the Cookiecutter core team.* + +## Other Contributors + +Listed in alphabetical order. + + + + + + + + {%- for contributor in other_contributors %} + + + + + + {%- endfor %} +
NameGithubTwitter
{{ contributor.name }} + {{ contributor.github_login }} + {{ contributor.twitter_username }}
+ +### Special Thanks + +The following haven't provided code directly, but have provided +guidance and advice. + +- Jannis Leidel +- Nate Aune +- Barry Morrison diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8dbff6c2..45e67c69 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -2,8 +2,8 @@ [//]: # (Before you proceed:) -[//]: # (1. Make sure to add yourself to `CONTRIBUTORS.rst` through this PR provided you're contributing here for the first time) -[//]: # (2. Don't forget to update the `docs/` presuming others would benefit from a concise description of whatever that you're proposing) +[//]: # (- Don't forget to update the `docs/` presuming others would benefit from a concise description of whatever that you're proposing) +[//]: # (- If you're adding a new option, please make sure that tests/test_cookiecutter_generation.py is updated accordingly) ## Description @@ -11,15 +11,11 @@ [//]: # (What's it you're proposing?) - - ## Rationale [//]: # (Why does the project need that?) - - ## Use case(s) / visualization(s) [//]: # ("Better to see something once than to hear about it a thousand times.") diff --git a/.github/contributors.json b/.github/contributors.json new file mode 100644 index 00000000..71488099 --- /dev/null +++ b/.github/contributors.json @@ -0,0 +1,1031 @@ +[ + { + "name": "Daniel Roy Greenfeld", + "github_login": "pydanny", + "twitter_username": "pydanny", + "is_core": true + }, + { + "name": "Audrey Roy Greenfeld", + "github_login": "audreyr", + "twitter_username": "audreyr", + "is_core": true + }, + { + "name": "Fábio C. Barrionuevo da Luz", + "github_login": "luzfcb", + "twitter_username": "luzfcb", + "is_core": true + }, + { + "name": "Saurabh Kumar", + "github_login": "theskumar", + "twitter_username": "_theskumar", + "is_core": true + }, + { + "name": "Jannis Gebauer", + "github_login": "jayfk", + "twitter_username": "", + "is_core": true + }, + { + "name": "Burhan Khalid", + "github_login": "burhan", + "twitter_username": "burhan", + "is_core": true + }, + { + "name": "Shupeyko Nikita", + "github_login": "webyneter", + "twitter_username": "webyneter", + "is_core": true + }, + { + "name": "Bruno Alla", + "github_login": "browniebroke", + "twitter_username": "_BrunoAlla", + "is_core": true + }, + { + "name": "Wan Liuyang", + "github_login": "sfdye", + "twitter_username": "sfdye", + "is_core": true + }, + { + "name": "18", + "github_login": "dezoito", + "twitter_username": "" + }, + { + "name": "2O4", + "github_login": "2O4", + "twitter_username": "" + }, + { + "name": "a7p", + "github_login": "a7p", + "twitter_username": "" + }, + { + "name": "Aadith PM", + "github_login": "aadithpm", + "twitter_username": "" + }, + { + "name": "Aaron Eikenberry", + "github_login": "aeikenberry", + "twitter_username": "" + }, + { + "name": "Adam Bogdał", + "github_login": "bogdal", + "twitter_username": "" + }, + { + "name": "Adam Dobrawy", + "github_login": "ad-m", + "twitter_username": "" + }, + { + "name": "Adam Steele", + "github_login": "adammsteele", + "twitter_username": "" + }, + { + "name": "Agam Dua", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Agustín Scaramuzza", + "github_login": "scaramagus", + "twitter_username": "scaramagus" + }, + { + "name": "Alberto Sanchez", + "github_login": "alb3rto", + "twitter_username": "" + }, + { + "name": "Alex Tsai", + "github_login": "caffodian", + "twitter_username": "" + }, + { + "name": "Alvaro [Andor]", + "github_login": "andor-pierdelacabeza", + "twitter_username": "" + }, + { + "name": "Amjith Ramanujam", + "github_login": "amjith", + "twitter_username": "" + }, + { + "name": "Andreas Meistad", + "github_login": "ameistad", + "twitter_username": "" + }, + { + "name": "Andres Gonzalez", + "github_login": "andresgz", + "twitter_username": "" + }, + { + "name": "Andrew Mikhnevich", + "github_login": "zcho", + "twitter_username": "" + }, + { + "name": "Andrew Chen Wang", + "github_login": "Andrew-Chen-Wang", + "twitter_username": "" + }, + { + "name": "Andy Rose", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Anna Callahan", + "github_login": "jazztpt", + "twitter_username": "" + }, + { + "name": "Anna Sidwell", + "github_login": "takkaria", + "twitter_username": "" + }, + { + "name": "Antonia Blair", + "github_login": "antoniablair", + "twitter_username": "antoniablairart" + }, + { + "name": "Anuj Bansal", + "github_login": "ahhda", + "twitter_username": "" + }, + { + "name": "Arcuri Davide", + "github_login": "dadokkio", + "twitter_username": "" + }, + { + "name": "Areski Belaid", + "github_login": "areski", + "twitter_username": "" + }, + { + "name": "AsheKR", + "github_login": "ashekr", + "twitter_username": "" + }, + { + "name": "Ashley Camba", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Barclay Gauld", + "github_login": "yunti", + "twitter_username": "" + }, + { + "name": "Bartek", + "github_login": "btknu", + "twitter_username": "" + }, + { + "name": "Ben Lopatin", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Ben Warren", + "github_login": "bwarren2", + "twitter_username": "" + }, + { + "name": "Benjamin Abel", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Bert de Miranda", + "github_login": "bertdemiranda", + "twitter_username": "" + }, + { + "name": "Bo Lopker", + "github_login": "blopker", + "twitter_username": "" + }, + { + "name": "Bo Peng", + "github_login": "BoPeng", + "twitter_username": "" + }, + { + "name": "Bouke Haarsma", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Brent Payne", + "github_login": "brentpayne", + "twitter_username": "brentpayne" + }, + { + "name": "Bruce Olivier", + "github_login": "bolivierjr", + "twitter_username": "" + }, + { + "name": "Caio Ariede", + "github_login": "caioariede", + "twitter_username": "caioariede" + }, + { + "name": "Carl Johnson", + "github_login": "carlmjohnson", + "twitter_username": "carlmjohnson" + }, + { + "name": "Catherine Devlin", + "github_login": "catherinedevlin", + "twitter_username": "" + }, + { + "name": "Cédric Gaspoz", + "github_login": "cgaspoz", + "twitter_username": "" + }, + { + "name": "Charlie Smith", + "github_login": "chuckus", + "twitter_username": "" + }, + { + "name": "Chris Curvey", + "github_login": "ccurvey", + "twitter_username": "" + }, + { + "name": "Chris Franklin", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Chris Franklin", + "github_login": "hairychris", + "twitter_username": "" + }, + { + "name": "Chris Pappalardo", + "github_login": "ChrisPappalardo", + "twitter_username": "" + }, + { + "name": "Christopher Clarke", + "github_login": "chrisdev", + "twitter_username": "" + }, + { + "name": "Cole Mackenzie", + "github_login": "cmackenzie1", + "twitter_username": "" + }, + { + "name": "Cole Maclean", + "github_login": "cole", + "twitter_username": "cole" + }, + { + "name": "Collederas", + "github_login": "Collederas", + "twitter_username": "" + }, + { + "name": "Craig Margieson", + "github_login": "cmargieson", + "twitter_username": "" + }, + { + "name": "Cristian Vargas", + "github_login": "cdvv7788", + "twitter_username": "" + }, + { + "name": "Cullen Rhodes", + "github_login": "c-rhodes", + "twitter_username": "" + }, + { + "name": "Curtis St Pierre", + "github_login": "curtisstpierre", + "twitter_username": "cstpierre1388" + }, + { + "name": "Dan Shultz", + "github_login": "shultz", + "twitter_username": "" + }, + { + "name": "Dani Hodovic", + "github_login": "danihodovic", + "twitter_username": "" + }, + { + "name": "Daniel Hepper", + "github_login": "dhepper", + "twitter_username": "danielhepper" + }, + { + "name": "Daniel Hillier", + "github_login": "danifus", + "twitter_username": "" + }, + { + "name": "Daniel Sears", + "github_login": "highpost", + "twitter_username": "highpost" + }, + { + "name": "Daniele Tricoli", + "github_login": "eriol", + "twitter_username": "" + }, + { + "name": "David Díaz", + "github_login": "ddiazpinto", + "twitter_username": "DavidDiazPinto" + }, + { + "name": "Davit Tovmasyan", + "github_login": "davitovmasyan", + "twitter_username": "" + }, + { + "name": "Davur Clementsen", + "github_login": "dsclementsen", + "twitter_username": "davur" + }, + { + "name": "Delio Castillo", + "github_login": "jangeador", + "twitter_username": "jangeador" + }, + { + "name": "Demetris Stavrou", + "github_login": "demestav", + "twitter_username": "" + }, + { + "name": "Denis Bobrov", + "github_login": "delneg", + "twitter_username": "" + }, + { + "name": "Denis Orehovsky", + "github_login": "apirobot", + "twitter_username": "" + }, + { + "name": "Denis Savran", + "github_login": "blaxpy", + "twitter_username": "" + }, + { + "name": "Diane Chen", + "github_login": "purplediane", + "twitter_username": "purplediane88" + }, + { + "name": "Dónal Adams", + "github_login": "epileptic-fish", + "twitter_username": "" + }, + { + "name": "Dong Huynh", + "github_login": "trungdong", + "twitter_username": "" + }, + { + "name": "Duda Nogueira", + "github_login": "dudanogueira", + "twitter_username": "dudanogueira" + }, + { + "name": "Emanuel Calso", + "github_login": "bloodpet", + "twitter_username": "bloodpet" + }, + { + "name": "Eraldo Energy", + "github_login": "eraldo", + "twitter_username": "" + }, + { + "name": "Eric Groom", + "github_login": "ericgroom", + "twitter_username": "" + }, + { + "name": "Ernesto Cedeno", + "github_login": "codnee", + "twitter_username": "" + }, + { + "name": "Eyad Al Sibai", + "github_login": "eyadsibai", + "twitter_username": "" + }, + { + "name": "Felipe Arruda", + "github_login": "arruda", + "twitter_username": "" + }, + { + "name": "Florian Idelberger", + "github_login": "step21", + "twitter_username": "windrush" + }, + { + "name": "Gabriel Mejia", + "github_login": "elgartoinf", + "twitter_username": "elgartoinf" + }, + { + "name": "Garry Cairns", + "github_login": "garry-cairns", + "twitter_username": "" + }, + { + "name": "Garry Polley", + "github_login": "garrypolley", + "twitter_username": "" + }, + { + "name": "Gilbishkosma", + "github_login": "Gilbishkosma", + "twitter_username": "" + }, + { + "name": "Glenn Wiskur", + "github_login": "gwiskur", + "twitter_username": "" + }, + { + "name": "Guilherme Guy", + "github_login": "guilherme1guy", + "twitter_username": "" + }, + { + "name": "Hamish Durkin", + "github_login": "durkode", + "twitter_username": "" + }, + { + "name": "Hana Quadara", + "github_login": "hanaquadara", + "twitter_username": "" + }, + { + "name": "Hannah Lazarus", + "github_login": "hanhanhan", + "twitter_username": "" + }, + { + "name": "Harry Moreno", + "github_login": "morenoh149", + "twitter_username": "morenoh149" + }, + { + "name": "Harry Percival", + "github_login": "hjwp", + "twitter_username": "" + }, + { + "name": "Hendrik Schneider", + "github_login": "hendrikschneider", + "twitter_username": "" + }, + { + "name": "Henrique G. G. Pereira", + "github_login": "ikkebr", + "twitter_username": "" + }, + { + "name": "Howie Zhao", + "github_login": "howiezhao", + "twitter_username": "" + }, + { + "name": "Ian Lee", + "github_login": "IanLee1521", + "twitter_username": "" + }, + { + "name": "Irfan Ahmad", + "github_login": "erfaan", + "twitter_username": "erfaan" + }, + { + "name": "Isaac12x", + "github_login": "Isaac12x", + "twitter_username": "" + }, + { + "name": "Ivan Khomutov", + "github_login": "ikhomutov", + "twitter_username": "" + }, + { + "name": "James Williams", + "github_login": "jameswilliams1", + "twitter_username": "" + }, + { + "name": "Jan Van Bruggen", + "github_login": "jvanbrug", + "twitter_username": "" + }, + { + "name": "Jelmer Draaijer", + "github_login": "foarsitter", + "twitter_username": "" + }, + { + "name": "Jerome Caisip", + "github_login": "jeromecaisip", + "twitter_username": "" + }, + { + "name": "Jens Nilsson", + "github_login": "phiberjenz", + "twitter_username": "" + }, + { + "name": "Jerome Leclanche", + "github_login": "jleclanche", + "twitter_username": "Adys" + }, + { + "name": "Jimmy Gitonga", + "github_login": "Afrowave", + "twitter_username": "afrowave" + }, + { + "name": "John Cass", + "github_login": "jcass77", + "twitter_username": "cass_john" + }, + { + "name": "Jonathan Thompson", + "github_login": "nojanath", + "twitter_username": "" + }, + { + "name": "Jules Cheron", + "github_login": "jules-ch", + "twitter_username": "" + }, + { + "name": "Julien Almarcha", + "github_login": "sladinji", + "twitter_username": "" + }, + { + "name": "Julio Castillo", + "github_login": "juliocc", + "twitter_username": "" + }, + { + "name": "Kaido Kert", + "github_login": "kaidokert", + "twitter_username": "" + }, + { + "name": "kappataumu", + "github_login": "kappataumu", + "twitter_username": "kappataumu" + }, + { + "name": "Kaveh", + "github_login": "ka7eh", + "twitter_username": "" + }, + { + "name": "Keith Bailey", + "github_login": "keithjeb", + "twitter_username": "" + }, + { + "name": "Keith Webber", + "github_login": "townie", + "twitter_username": "" + }, + { + "name": "Kevin A. Stone", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Kevin Ndung'u", + "github_login": "kevgathuku", + "twitter_username": "" + }, + { + "name": "Keyvan Mosharraf", + "github_login": "keyvanm", + "twitter_username": "" + }, + { + "name": "Krzysztof Szumny", + "github_login": "noisy", + "twitter_username": "" + }, + { + "name": "Krzysztof Żuraw", + "github_login": "krzysztofzuraw", + "twitter_username": "" + }, + { + "name": "Leo won", + "github_login": "leollon", + "twitter_username": "" + }, + { + "name": "Leo Zhou", + "github_login": "glasslion", + "twitter_username": "" + }, + { + "name": "Leon Kim", + "github_login": "PilhwanKim", + "twitter_username": "" + }, + { + "name": "Leonardo Jimenez", + "github_login": "xpostudio4", + "twitter_username": "" + }, + { + "name": "Lin Xianyi", + "github_login": "iynaix", + "twitter_username": "" + }, + { + "name": "Luis Nell", + "github_login": "originell", + "twitter_username": "" + }, + { + "name": "Lukas Klein", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Lyla Fischer", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Malik Sulaimanov", + "github_login": "flyudvik", + "twitter_username": "flyudvik" + }, + { + "name": "Martin Blech", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Martin Saizar", + "github_login": "msaizar", + "twitter_username": "" + }, + { + "name": "Mateusz Ostaszewski", + "github_login": "mostaszewski", + "twitter_username": "" + }, + { + "name": "Mathijs Hoogland", + "github_login": "MathijsHoogland", + "twitter_username": "" + }, + { + "name": "Matt Braymer-Hayes", + "github_login": "mattayes", + "twitter_username": "mattayes" + }, + { + "name": "Matt Knapper", + "github_login": "mknapper1", + "twitter_username": "" + }, + { + "name": "Matt Linares", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Matt Menzenski", + "github_login": "menzenski", + "twitter_username": "" + }, + { + "name": "Matt Warren", + "github_login": "mfwarren", + "twitter_username": "" + }, + { + "name": "Matthew Sisley", + "github_login": "mjsisley", + "twitter_username": "" + }, + { + "name": "Matthias Sieber", + "github_login": "manonthemat", + "twitter_username": "MatzeOne" + }, + { + "name": "Meghan Heintz", + "github_login": "dot2dotseurat", + "twitter_username": "" + }, + { + "name": "Mesut Yılmaz", + "github_login": "myilmaz", + "twitter_username": "" + }, + { + "name": "Michael Gecht", + "github_login": "mimischi", + "twitter_username": "_mischi" + }, + { + "name": "Michael Samoylov", + "github_login": "msamoylov", + "twitter_username": "" + }, + { + "name": "Min ho Kim", + "github_login": "minho42", + "twitter_username": "" + }, + { + "name": "mozillazg", + "github_login": "mozillazg", + "twitter_username": "" + }, + { + "name": "Nico Stefani", + "github_login": "nicolas471", + "twitter_username": "moby_dick91" + }, + { + "name": "Oleg Russkin", + "github_login": "rolep", + "twitter_username": "" + }, + { + "name": "Pablo", + "github_login": "oubiga", + "twitter_username": "" + }, + { + "name": "Parbhat Puri", + "github_login": "parbhat", + "twitter_username": "" + }, + { + "name": "Pawan Chaurasia", + "github_login": "rjsnh1522", + "twitter_username": "" + }, + { + "name": "Peter Bittner", + "github_login": "bittner", + "twitter_username": "" + }, + { + "name": "Peter Coles", + "github_login": "mrcoles", + "twitter_username": "" + }, + { + "name": "Philipp Matthies", + "github_login": "canonnervio", + "twitter_username": "" + }, + { + "name": "Pierre Chiquet", + "github_login": "pchiquet", + "twitter_username": "" + }, + { + "name": "Raony Guimarães Corrêa", + "github_login": "raonyguimaraes", + "twitter_username": "" + }, + { + "name": "Raphael Pierzina", + "github_login": "hackebrot", + "twitter_username": "" + }, + { + "name": "Reggie Riser", + "github_login": "reggieriser", + "twitter_username": "" + }, + { + "name": "René Muhl", + "github_login": "rm--", + "twitter_username": "" + }, + { + "name": "Richard Hajdu", + "github_login": "Tusky", + "twitter_username": "" + }, + { + "name": "Roman Afanaskin", + "github_login": "siauPatrick", + "twitter_username": "" + }, + { + "name": "Roman Osipenko", + "github_login": "romanosipenko", + "twitter_username": "" + }, + { + "name": "Russell Davies", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Sam Collins", + "github_login": "MightySCollins", + "twitter_username": "" + }, + { + "name": "Sascha", + "github_login": "saschalalala", + "twitter_username": "saschalalala" + }, + { + "name": "Sławek Ehlert", + "github_login": "slafs", + "twitter_username": "" + }, + { + "name": "Sorasful", + "github_login": "sorasful", + "twitter_username": "" + }, + { + "name": "Srinivas Nyayapati", + "github_login": "shireenrao", + "twitter_username": "" + }, + { + "name": "stepmr", + "github_login": "stepmr", + "twitter_username": "" + }, + { + "name": "Steve Steiner", + "github_login": "ssteinerX", + "twitter_username": "" + }, + { + "name": "Sudarshan Wadkar", + "github_login": "wadkar", + "twitter_username": "" + }, + { + "name": "Sule Marshall", + "github_login": "suledev", + "twitter_username": "" + }, + { + "name": "Tano Abeleyra", + "github_login": "tanoabeleyra", + "twitter_username": "" + }, + { + "name": "Taylor Baldwin", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Théo Segonds", + "github_login": "show0k", + "twitter_username": "" + }, + { + "name": "Tim Claessens", + "github_login": "timclaessens", + "twitter_username": "" + }, + { + "name": "Tim Freund", + "github_login": "timfreund", + "twitter_username": "" + }, + { + "name": "Tom Atkins", + "github_login": "knitatoms", + "twitter_username": "" + }, + { + "name": "Tom Offermann", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Travis McNeill", + "github_login": "Travistock", + "twitter_username": "tavistock_esq" + }, + { + "name": "Tubo Shi", + "github_login": "Tubo", + "twitter_username": "" + }, + { + "name": "Umair Ashraf", + "github_login": "umrashrf", + "twitter_username": "fabumair" + }, + { + "name": "Vadim Iskuchekov", + "github_login": "Egregors", + "twitter_username": "egregors" + }, + { + "name": "Vicente G. Reyes", + "github_login": "reyesvicente", + "twitter_username": "highcenburg" + }, + { + "name": "Vitaly Babiy", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Vivian Guillen", + "github_login": "viviangb", + "twitter_username": "" + }, + { + "name": "Vlad Doster", + "github_login": "vladdoster", + "twitter_username": "" + }, + { + "name": "Will Farley", + "github_login": "goldhand", + "twitter_username": "g01dhand" + }, + { + "name": "William Archinal", + "github_login": "archinal", + "twitter_username": "" + }, + { + "name": "Xaver Y.R. Chen", + "github_login": "yrchen", + "twitter_username": "yrchen" + }, + { + "name": "Yaroslav Halchenko", + "github_login": "", + "twitter_username": "" + }, + { + "name": "Yuchen Xie", + "github_login": "mapx", + "twitter_username": "" + }, + { + "name": "enchance", + "github_login": "enchance", + "twitter_username": "" + }, + { + "name": "Jan Fabry", + "github_login": "janfabry", + "twitter_username": "" + }, + { + "name": "Corey Garvey", + "github_login": "coreygarvey", + "twitter_username": "" + } +] \ No newline at end of file diff --git a/.github/workflows/update-contributors.yml b/.github/workflows/update-contributors.yml new file mode 100644 index 00000000..acae4729 --- /dev/null +++ b/.github/workflows/update-contributors.yml @@ -0,0 +1,30 @@ +name: Update Contributors + +on: + push: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: "3.8" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Update list + run: python scripts/update_contributors.py + + - name: Commit changes + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: Update Contributors + file_pattern: CONTRIBUTORS.md .github/contributors.json diff --git a/.gitignore b/.gitignore index efe33bef..386b2651 100644 --- a/.gitignore +++ b/.gitignore @@ -214,7 +214,6 @@ tags [Ii]nclude [Ll]ib [Ll]ib64 -[Ss]cripts pyvenv.cfg pip-selfcheck.json diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 0a64e628..5d88bf5b 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -8,7 +8,6 @@ Getting your pull request merged in #. Keep it small. The smaller the pull request the more likely I'll pull it in. #. Pull requests that fix a current issue get priority for review. -#. If you're not already in the `CONTRIBUTORS.rst` file, add yourself! Testing ------- diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md new file mode 100644 index 00000000..0174628e --- /dev/null +++ b/CONTRIBUTORS.md @@ -0,0 +1,1466 @@ +# Contributors + +## Core Developers + +These contributors have commit flags for the repository, and are able to +accept and merge pull requests. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameGithubTwitter
Daniel Roy Greenfeld + pydanny + pydanny
Audrey Roy Greenfeld + audreyr + audreyr
Fábio C. Barrionuevo da Luz + luzfcb + luzfcb
Saurabh Kumar + theskumar + _theskumar
Jannis Gebauer + jayfk +
Burhan Khalid + burhan + burhan
Shupeyko Nikita + webyneter + webyneter
Bruno Alla + browniebroke + _BrunoAlla
Wan Liuyang + sfdye + sfdye
+ +*Audrey is also the creator of Cookiecutter. Audrey and Daniel are on +the Cookiecutter core team.* + +## Other Contributors + +Listed in alphabetical order. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameGithubTwitter
18 + dezoito +
2O4 + 2O4 +
a7p + a7p +
Aadith PM + aadithpm +
Aaron Eikenberry + aeikenberry +
Adam Bogdał + bogdal +
Adam Dobrawy + ad-m +
Adam Steele + adammsteele +
Agam Dua + +
Agustín Scaramuzza + scaramagus + scaramagus
Alberto Sanchez + alb3rto +
Alex Tsai + caffodian +
Alvaro [Andor] + andor-pierdelacabeza +
Amjith Ramanujam + amjith +
Andreas Meistad + ameistad +
Andres Gonzalez + andresgz +
Andrew Chen Wang + Andrew-Chen-Wang +
Andrew Mikhnevich + zcho +
Andy Rose + +
Anna Callahan + jazztpt +
Anna Sidwell + takkaria +
Antonia Blair + antoniablair + antoniablairart
Anuj Bansal + ahhda +
Arcuri Davide + dadokkio +
Areski Belaid + areski +
AsheKR + ashekr +
Ashley Camba + +
Barclay Gauld + yunti +
Bartek + btknu +
Ben Lopatin + +
Ben Warren + bwarren2 +
Benjamin Abel + +
Bert de Miranda + bertdemiranda +
Bo Lopker + blopker +
Bo Peng + BoPeng +
Bouke Haarsma + +
Brent Payne + brentpayne + brentpayne
Bruce Olivier + bolivierjr +
Caio Ariede + caioariede + caioariede
Carl Johnson + carlmjohnson + carlmjohnson
Catherine Devlin + catherinedevlin +
Charlie Smith + chuckus +
Chris Curvey + ccurvey +
Chris Franklin + +
Chris Franklin + hairychris +
Chris Pappalardo + ChrisPappalardo +
Christopher Clarke + chrisdev +
Cole Mackenzie + cmackenzie1 +
Cole Maclean + cole + cole
Collederas + Collederas +
Corey Garvey + coreygarvey +
Craig Margieson + cmargieson +
Cristian Vargas + cdvv7788 +
Cullen Rhodes + c-rhodes +
Curtis St Pierre + curtisstpierre + cstpierre1388
Cédric Gaspoz + cgaspoz +
Dan Shultz + shultz +
Dani Hodovic + danihodovic +
Daniel Hepper + dhepper + danielhepper
Daniel Hillier + danifus +
Daniel Sears + highpost + highpost
Daniele Tricoli + eriol +
David Díaz + ddiazpinto + DavidDiazPinto
Davit Tovmasyan + davitovmasyan +
Davur Clementsen + dsclementsen + davur
Delio Castillo + jangeador + jangeador
Demetris Stavrou + demestav +
Denis Bobrov + delneg +
Denis Orehovsky + apirobot +
Denis Savran + blaxpy +
Diane Chen + purplediane + purplediane88
Dong Huynh + trungdong +
Duda Nogueira + dudanogueira + dudanogueira
Dónal Adams + epileptic-fish +
Emanuel Calso + bloodpet + bloodpet
enchance + enchance +
Eraldo Energy + eraldo +
Eric Groom + ericgroom +
Ernesto Cedeno + codnee +
Eyad Al Sibai + eyadsibai +
Felipe Arruda + arruda +
Florian Idelberger + step21 + windrush
Gabriel Mejia + elgartoinf + elgartoinf
Garry Cairns + garry-cairns +
Garry Polley + garrypolley +
Gilbishkosma + Gilbishkosma +
Glenn Wiskur + gwiskur +
Guilherme Guy + guilherme1guy +
Hamish Durkin + durkode +
Hana Quadara + hanaquadara +
Hannah Lazarus + hanhanhan +
Harry Moreno + morenoh149 + morenoh149
Harry Percival + hjwp +
Hendrik Schneider + hendrikschneider +
Henrique G. G. Pereira + ikkebr +
Howie Zhao + howiezhao +
Ian Lee + IanLee1521 +
Irfan Ahmad + erfaan + erfaan
Isaac12x + Isaac12x +
Ivan Khomutov + ikhomutov +
James Williams + jameswilliams1 +
Jan Fabry + janfabry +
Jan Van Bruggen + jvanbrug +
Jelmer Draaijer + foarsitter +
Jens Nilsson + phiberjenz +
Jerome Caisip + jeromecaisip +
Jerome Leclanche + jleclanche + Adys
Jimmy Gitonga + Afrowave + afrowave
John Cass + jcass77 + cass_john
Jonathan Thompson + nojanath +
Jules Cheron + jules-ch +
Julien Almarcha + sladinji +
Julio Castillo + juliocc +
Kaido Kert + kaidokert +
kappataumu + kappataumu + kappataumu
Kaveh + ka7eh +
Keith Bailey + keithjeb +
Keith Webber + townie +
Kevin A. Stone + +
Kevin Ndung'u + kevgathuku +
Keyvan Mosharraf + keyvanm +
Krzysztof Szumny + noisy +
Krzysztof Żuraw + krzysztofzuraw +
Leo won + leollon +
Leo Zhou + glasslion +
Leon Kim + PilhwanKim +
Leonardo Jimenez + xpostudio4 +
Lin Xianyi + iynaix +
Luis Nell + originell +
Lukas Klein + +
Lyla Fischer + +
Malik Sulaimanov + flyudvik + flyudvik
Martin Blech + +
Martin Saizar + msaizar +
Mateusz Ostaszewski + mostaszewski +
Mathijs Hoogland + MathijsHoogland +
Matt Braymer-Hayes + mattayes + mattayes
Matt Knapper + mknapper1 +
Matt Linares + +
Matt Menzenski + menzenski +
Matt Warren + mfwarren +
Matthew Sisley + mjsisley +
Matthias Sieber + manonthemat + MatzeOne
Meghan Heintz + dot2dotseurat +
Mesut Yılmaz + myilmaz +
Michael Gecht + mimischi + _mischi
Michael Samoylov + msamoylov +
Min ho Kim + minho42 +
mozillazg + mozillazg +
Nico Stefani + nicolas471 + moby_dick91
Oleg Russkin + rolep +
Pablo + oubiga +
Parbhat Puri + parbhat +
Pawan Chaurasia + rjsnh1522 +
Peter Bittner + bittner +
Peter Coles + mrcoles +
Philipp Matthies + canonnervio +
Pierre Chiquet + pchiquet +
Raony Guimarães Corrêa + raonyguimaraes +
Raphael Pierzina + hackebrot +
Reggie Riser + reggieriser +
René Muhl + rm-- +
Richard Hajdu + Tusky +
Roman Afanaskin + siauPatrick +
Roman Osipenko + romanosipenko +
Russell Davies + +
Sam Collins + MightySCollins +
Sascha + saschalalala + saschalalala
Sorasful + sorasful +
Srinivas Nyayapati + shireenrao +
stepmr + stepmr +
Steve Steiner + ssteinerX +
Sudarshan Wadkar + wadkar +
Sule Marshall + suledev +
Sławek Ehlert + slafs +
Tano Abeleyra + tanoabeleyra +
Taylor Baldwin + +
Théo Segonds + show0k +
Tim Claessens + timclaessens +
Tim Freund + timfreund +
Tom Atkins + knitatoms +
Tom Offermann + +
Travis McNeill + Travistock + tavistock_esq
Tubo Shi + Tubo +
Umair Ashraf + umrashrf + fabumair
Vadim Iskuchekov + Egregors + egregors
Vicente G. Reyes + reyesvicente + highcenburg
Vitaly Babiy + +
Vivian Guillen + viviangb +
Vlad Doster + vladdoster +
Will Farley + goldhand + g01dhand
William Archinal + archinal +
Xaver Y.R. Chen + yrchen + yrchen
Yaroslav Halchenko + +
Yuchen Xie + mapx +
+ +### Special Thanks + +The following haven't provided code directly, but have provided +guidance and advice. + +- Jannis Leidel +- Nate Aune +- Barry Morrison \ No newline at end of file diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst deleted file mode 100644 index 3faa87d5..00000000 --- a/CONTRIBUTORS.rst +++ /dev/null @@ -1,427 +0,0 @@ -Contributors -============ - -Core Developers ---------------- - -These contributors have commit flags for the repository, -and are able to accept and merge pull requests. - -=========================== ================= =========== -Name Github Twitter -=========================== ================= =========== -Daniel Roy Greenfeld `@pydanny`_ @pydanny -Audrey Roy Greenfeld* `@audreyr`_ @audreyr -Fábio C. Barrionuevo da Luz `@luzfcb`_ @luzfcb -Saurabh Kumar `@theskumar`_ @_theskumar -Jannis Gebauer `@jayfk`_ -Burhan Khalid `@burhan`_ @burhan -Nikita Shupeyko `@webyneter`_ @webyneter -Bruno Alla               `@browniebroke`_ @_BrunoAlla -Wan Liuyang `@sfdye`_ @sfdye -=========================== ================= =========== - -*Audrey is also the creator of Cookiecutter. Audrey and -Daniel are on the Cookiecutter core team.* - -.. _@pydanny: https://github.com/pydanny -.. _@luzfcb: https://github.com/luzfcb -.. _@theskumar: https://github.com/theskumar -.. _@audreyr: https://github.com/audreyr -.. _@jayfk: https://github.com/jayfk -.. _@webyneter: https://github.com/webyneter -.. _@browniebroke: https://github.com/browniebroke -.. _@sfdye: https://github.com/sfdye - -Other Contributors ------------------- - -Listed in alphabetical order. - -========================== ============================ ============== - Name Github Twitter -========================== ============================ ============== - 18 `@dezoito`_ - 2O4 `@2O4`_ - a7p `@a7p`_ - Aadith PM `@aadithpm`_ - Aaron Eikenberry `@aeikenberry`_ - Adam Bogdał `@bogdal`_ - Adam Dobrawy `@ad-m`_ - Adam Steele `@adammsteele`_ - Agam Dua - Agustín Scaramuzza `@scaramagus`_ @scaramagus - Alberto Sanchez `@alb3rto`_ - Alex Tsai `@caffodian`_ - Alvaro [Andor] `@andor-pierdelacabeza`_ - Amjith Ramanujam `@amjith`_ - Andreas Meistad `@ameistad`_ - Andres Gonzalez `@andresgz`_ - Andrew Mikhnevich `@zcho`_ - Andrew Chen Wang `@Andrew-Chen-Wang`_ - Andy Rose - Anna Callahan `@jazztpt`_ - Anna Sidwell `@takkaria`_ - Antonia Blair `@antoniablair`_ @antoniablairart - Anuj Bansal `@ahhda`_ - Arcuri Davide `@dadokkio`_ - Areski Belaid `@areski`_ - AsheKR `@ashekr`_ - Ashley Camba - Barclay Gauld `@yunti`_ - Bartek `@btknu`_ - Ben Lopatin - Ben Warren `@bwarren2`_ - Benjamin Abel - Bert de Miranda `@bertdemiranda`_ - Bo Lopker `@blopker`_ - Bo Peng `@BoPeng`_ - Bouke Haarsma - Brent Payne `@brentpayne`_ @brentpayne - Bruce Olivier `@bolivierjr`_ - Burhan Khalid            `@burhan`_                   @burhan - Caio Ariede `@caioariede`_ @caioariede - Carl Johnson `@carlmjohnson`_ @carlmjohnson - Catherine Devlin `@catherinedevlin`_ - Cédric Gaspoz `@cgaspoz`_ - Charlie Smith `@chuckus`_ - Chris Curvey `@ccurvey`_ - Chris Franklin - Chris Franklin `@hairychris`_ - Chris Pappalardo `@ChrisPappalardo`_ - Christopher Clarke `@chrisdev`_ - Cole Mackenzie `@cmackenzie1`_ - Cole Maclean `@cole`_ @cole - Collederas `@Collederas`_ - Corey Garvey `@coreygarvey`_ - Craig Margieson `@cmargieson`_ - Cristian Vargas `@cdvv7788`_ - Cullen Rhodes `@c-rhodes`_ - Curtis St Pierre `@curtisstpierre`_ @cstpierre1388 - Dan Shultz `@shultz`_ - Dani Hodovic `@danihodovic`_ - Daniel Hepper `@dhepper`_ @danielhepper - Daniel Hillier `@danifus`_ - Daniel Sears `@highpost`_ @highpost - Daniele Tricoli `@eriol`_ - David Díaz `@ddiazpinto`_ @DavidDiazPinto - Davit Tovmasyan `@davitovmasyan`_ - Davur Clementsen `@dsclementsen`_ @davur - Delio Castillo `@jangeador`_ @jangeador - Demetris Stavrou `@demestav`_ - Denis Bobrov `@delneg`_ - Denis Orehovsky `@apirobot`_ - Denis Savran `@blaxpy`_ - Diane Chen `@purplediane`_ @purplediane88 - Dónal Adams `@epileptic-fish`_ - Dong Huynh `@trungdong`_ - Duda Nogueira `@dudanogueira`_ @dudanogueira - Emanuel Calso `@bloodpet`_ @bloodpet - Eraldo Energy `@eraldo`_ - Eric Groom `@ericgroom`_ - Ernesto Cedeno `@codnee`_ - Eyad Al Sibai `@eyadsibai`_ - Felipe Arruda `@arruda`_ - Florian Idelberger `@step21`_ @windrush - Gabriel Mejia `@elgartoinf`_ @elgartoinf - Garry Cairns `@garry-cairns`_ - Garry Polley `@garrypolley`_ - Gilbishkosma `@Gilbishkosma`_ - Glenn Wiskur `@gwiskur`_ - Guilherme Guy `@guilherme1guy`_ - Hamish Durkin `@durkode`_ - Hana Quadara `@hanaquadara`_ - Hannah Lazarus `@hanhanhan`_ - Harry Moreno `@morenoh149`_ @morenoh149 - Harry Percival `@hjwp`_ - Hendrik Schneider `@hendrikschneider`_ - Henrique G. G. Pereira `@ikkebr`_ - Howie Zhao `@howiezhao`_ - Ian Lee `@IanLee1521`_ - Irfan Ahmad `@erfaan`_ @erfaan - Isaac12x `@Isaac12x`_ - Ivan Khomutov `@ikhomutov`_ - James Williams `@jameswilliams1`_ - Jan Fabry `@janfabry`_ - Jan Van Bruggen `@jvanbrug`_ - Jelmer Draaijer `@foarsitter`_ - Jerome Caisip `@jeromecaisip`_ - Jens Nilsson `@phiberjenz`_ - Jerome Leclanche `@jleclanche`_ @Adys - Jimmy Gitonga `@afrowave`_ @afrowave - John Cass `@jcass77`_ @cass_john - Jonathan Thompson `@nojanath`_ - Jules Cheron `@jules-ch`_ - Julien Almarcha `@sladinji`_ - Julio Castillo `@juliocc`_ - Kaido Kert `@kaidokert`_ - kappataumu `@kappataumu`_ @kappataumu - Kaveh `@ka7eh`_ - Keith Bailey `@keithjeb`_ - Keith Webber `@townie`_ - Kevin A. Stone - Kevin Ndung'u `@kevgathuku`_ - Keyvan Mosharraf `@keyvanm`_ - Krzysztof Szumny `@noisy`_ - Krzysztof Żuraw `@krzysztofzuraw`_ - Leo won `@leollon`_ - Leo Zhou `@glasslion`_ - Leon Kim `@PilhwanKim`_ - Leonardo Jimenez `@xpostudio4`_ - Lin Xianyi `@iynaix`_ - Luis Nell `@originell`_ - Lukas Klein - Lyla Fischer - Malik Sulaimanov `@flyudvik`_ @flyudvik - Martin Blech - Martin Saizar `@msaizar`_ - Mateusz Ostaszewski `@mostaszewski`_ - Mathijs Hoogland `@MathijsHoogland`_ - Matt Braymer-Hayes `@mattayes`_ @mattayes - Matt Knapper `@mknapper1`_ - Matt Linares - Matt Menzenski `@menzenski`_ - Matt Warren `@mfwarren`_ - Matthew Sisley `@mjsisley`_ - Matthias Sieber `@manonthemat`_ @MatzeOne - Meghan Heintz `@dot2dotseurat`_ - Mesut Yılmaz `@myilmaz`_ - Michael Gecht `@mimischi`_ @_mischi - Michael Samoylov `@msamoylov`_ - Min ho Kim `@minho42`_ - mozillazg `@mozillazg`_ - Nico Stefani `@nicolas471`_ @moby_dick91 - Oleg Russkin `@rolep`_ - Pablo `@oubiga`_ - Parbhat Puri `@parbhat`_ - Pawan Chaurasia `@rjsnh1522`_ - Peter Bittner `@bittner`_ - Peter Coles `@mrcoles`_ - Philipp Matthies `@canonnervio`_ - Pierre Chiquet `@pchiquet`_ - Raony Guimarães Corrêa `@raonyguimaraes`_ - Raphael Pierzina `@hackebrot`_ - Reggie Riser `@reggieriser`_ - René Muhl `@rm--`_ - Richard Hajdu `@Tusky`_ - Roman Afanaskin `@siauPatrick`_ - Roman Osipenko `@romanosipenko`_ - Russell Davies - Sam Collins `@MightySCollins`_ - Sascha `@saschalalala`_ @saschalalala - Shupeyko Nikita `@webyneter`_ - Sławek Ehlert `@slafs`_ - Sorasful `@sorasful`_ - Srinivas Nyayapati `@shireenrao`_ - stepmr `@stepmr`_ - Steve Steiner `@ssteinerX`_ - Sudarshan Wadkar `@wadkar`_ - Sule Marshall `@suledev`_ - Tano Abeleyra `@tanoabeleyra`_ - Taylor Baldwin - Théo Segonds `@show0k`_ - Tim Claessens `@timclaessens`_ - Tim Freund `@timfreund`_ - Tom Atkins `@knitatoms`_ - Tom Offermann - Travis McNeill `@Travistock`_ @tavistock_esq - Tubo Shi `@Tubo`_ - Umair Ashraf `@umrashrf`_ @fabumair - Vadim Iskuchekov `@Egregors`_ @egregors - Vicente G. Reyes `@reyesvicente`_ @highcenburg - Vitaly Babiy - Vivian Guillen `@viviangb`_ - Vlad Doster `@vladdoster`_ - Will Farley `@goldhand`_ @g01dhand - William Archinal `@archinal`_ - Xaver Y.R. Chen `@yrchen`_ @yrchen - Yaroslav Halchenko - Yuchen Xie `@mapx`_ -========================== ============================ ============== - -.. _@aadithpm: https://github.com/aadithpm -.. _@a7p: https://github.com/a7p -.. _@2O4: https://github.com/2O4 -.. _@ad-m: https://github.com/ad-m -.. _@adammsteele: https://github.com/adammsteele -.. _@aeikenberry: https://github.com/aeikenberry -.. _@afrowave: https://github.com/afrowave -.. _@ahhda: https://github.com/ahhda -.. _@alb3rto: https://github.com/alb3rto -.. _@ameistad: https://github.com/ameistad -.. _@amjith: https://github.com/amjith -.. _@andor-pierdelacabeza: https://github.com/andor-pierdelacabeza -.. _@andresgz: https://github.com/andresgz -.. _@antoniablair: https://github.com/antoniablair -.. _@Andrew-Chen-Wang: https://github.com/Andrew-Chen-Wang -.. _@apirobot: https://github.com/apirobot -.. _@archinal: https://github.com/archinal -.. _@areski: https://github.com/areski -.. _@arruda: https://github.com/arruda -.. _@ashekr: https://github.com/ashekr -.. _@bertdemiranda: https://github.com/bertdemiranda -.. _@bittner: https://github.com/bittner -.. _@blaxpy: https://github.com/blaxpy -.. _@bloodpet: https://github.com/bloodpet -.. _@blopker: https://github.com/blopker -.. _@bogdal: https://github.com/bogdal -.. _@bolivierjr: https://github.com/bolivierjr -.. _@BoPeng: https://github.com/BoPeng -.. _@brentpayne: https://github.com/brentpayne -.. _@btknu: https://github.com/btknu -.. _@burhan: https://github.com/burhan -.. _@bwarren2: https://github.com/bwarren2 -.. _@c-rhodes: https://github.com/c-rhodes -.. _@caffodian: https://github.com/caffodian -.. _@canonnervio: https://github.com/canonnervio -.. _@caioariede: https://github.com/caioariede -.. _@carlmjohnson: https://github.com/carlmjohnson -.. _@catherinedevlin: https://github.com/catherinedevlin -.. _@ccurvey: https://github.com/ccurvey -.. _@cdvv7788: https://github.com/cdvv7788 -.. _@cgaspoz: https://github.com/cgaspoz -.. _@chrisdev: https://github.com/chrisdev -.. _@ChrisPappalardo: https://github.com/ChrisPappalardo -.. _@chuckus: https://github.com/chuckus -.. _@cmackenzie1: https://github.com/cmackenzie1 -.. _@cmargieson: https://github.com/cmargieson -.. _@codnee: https://github.com/codnee -.. _@cole: https://github.com/cole -.. _@Collederas: https://github.com/Collederas -.. _@curtisstpierre: https://github.com/curtisstpierre -.. _@dadokkio: https://github.com/dadokkio -.. _@danihodovic: https://github.com/danihodovic -.. _@danifus: https://github.com/danifus -.. _@davitovmasyan: https://github.com/davitovmasyan -.. _@ddiazpinto: https://github.com/ddiazpinto -.. _@delneg: https://github.com/delneg -.. _@demestav: https://github.com/demestav -.. _@dezoito: https://github.com/dezoito -.. _@dhepper: https://github.com/dhepper -.. _@dot2dotseurat: https://github.com/dot2dotseurat -.. _@dudanogueira: https://github.com/dudanogueira -.. _@dsclementsen: https://github.com/dsclementsen -.. _@guilherme1guy: https://github.com/guilherme1guy -.. _@durkode: https://github.com/durkode -.. _@Egregors: https://github.com/Egregors -.. _@elgartoinf: https://gihub.com/elgartoinf -.. _@epileptic-fish: https://gihub.com/epileptic-fish -.. _@eraldo: https://github.com/eraldo -.. _@erfaan: https://github.com/erfaan -.. _@ericgroom: https://github.com/ericgroom -.. _@eriol: https://github.com/eriol -.. _@eyadsibai: https://github.com/eyadsibai -.. _@flyudvik: https://github.com/flyudvik -.. _@foarsitter: https://github.com/foarsitter -.. _@garry-cairns: https://github.com/garry-cairns -.. _@garrypolley: https://github.com/garrypolley -.. _@Gilbishkosma: https://github.com/Gilbishkosma -.. _@gwiskur: https://github.com/gwiskur -.. _@glasslion: https://github.com/glasslion -.. _@goldhand: https://github.com/goldhand -.. _@hackebrot: https://github.com/hackebrot -.. _@hairychris: https://github.com/hairychris -.. _@hanaquadara: https://github.com/hanaquadara -.. _@hanhanhan: https://github.com/hanhanhan -.. _@hendrikschneider: https://github.com/hendrikschneider -.. _@highpost: https://github.com/highpost -.. _@hjwp: https://github.com/hjwp -.. _@howiezhao: https://github.com/howiezhao -.. _@IanLee1521: https://github.com/IanLee1521 -.. _@ikhomutov: https://github.com/ikhomutov -.. _@jameswilliams1: https://github.com/jameswilliams1 -.. _@ikkebr: https://github.com/ikkebr -.. _@Isaac12x: https://github.com/Isaac12x -.. _@iynaix: https://github.com/iynaix -.. _@janfabry: https://github.com/janfabry -.. _@jangeador: https://github.com/jangeador -.. _@jazztpt: https://github.com/jazztpt -.. _@jcass77: https://github.com/jcass77 -.. _@jeromecaisip: https://github.com/jeromecaisip -.. _@jleclanche: https://github.com/jleclanche -.. _@jules-ch: https://github.com/jules-ch -.. _@juliocc: https://github.com/juliocc -.. _@jvanbrug: https://github.com/jvanbrug -.. _@ka7eh: https://github.com/ka7eh -.. _@kaidokert: https://github.com/kaidokert -.. _@kappataumu: https://github.com/kappataumu -.. _@keithjeb: https://github.com/keithjeb -.. _@kevgathuku: https://github.com/kevgathuku -.. _@keyvanm: https://github.com/keyvanm -.. _@knitatoms: https://github.com/knitatoms -.. _@krzysztofzuraw: https://github.com/krzysztofzuraw -.. _@leollon: https://github.com/leollon -.. _@MathijsHoogland: https://github.com/MathijsHoogland -.. _@mapx: https://github.com/mapx -.. _@manonthemat: https://github.com/manonthemat -.. _@mattayes: https://github.com/mattayes -.. _@menzenski: https://github.com/menzenski -.. _@mfwarren: https://github.com/mfwarren -.. _@MightySCollins: https://github.com/MightySCollins -.. _@mimischi: https://github.com/mimischi -.. _@minho42: https://github.com/minho42 -.. _@mjsisley: https://github.com/mjsisley -.. _@mknapper1: https://github.com/mknapper1 -.. _@morenoh149: https://github.com/morenoh149 -.. _@mostaszewski: https://github.com/mostaszewski -.. _@mozillazg: https://github.com/mozillazg -.. _@mrcoles: https://github.com/mrcoles -.. _@msaizar: https://github.com/msaizar -.. _@msamoylov: https://github.com/msamoylov -.. _@myilmaz: https://github.com/myilmaz -.. _@nicolas471: https://github.com/nicolas471 -.. _@noisy: https://github.com/noisy -.. _@nojanath: https://github.com/nojanath -.. _@originell: https://github.com/originell -.. _@oubiga: https://github.com/oubiga -.. _@parbhat: https://github.com/parbhat -.. _@rjsnh1522: https://github.com/rjsnh1522 -.. _@pchiquet: https://github.com/pchiquet -.. _@phiberjenz: https://github.com/phiberjenz -.. _@PilhwanKim: https://github.com/PilhwanKim -.. _@purplediane: https://github.com/purplediane -.. _@raonyguimaraes: https://github.com/raonyguimaraes -.. _@reggieriser: https://github.com/reggieriser -.. _@reyesvicente: https://github.com/reyesvicente -.. _@rm--: https://github.com/rm-- -.. _@Tusky: https://github.com/Tusky -.. _@rolep: https://github.com/rolep -.. _@romanosipenko: https://github.com/romanosipenko -.. _@saschalalala: https://github.com/saschalalala -.. _@scaramagus: https://github.com/scaramagus -.. _@shireenrao: https://github.com/shireenrao -.. _@show0k: https://github.com/show0k -.. _@shultz: https://github.com/shultz -.. _@siauPatrick: https://github.com/siauPatrick -.. _@sladinji: https://github.com/sladinji -.. _@slafs: https://github.com/slafs -.. _@sorasful: https://github.com/sorasful -.. _@ssteinerX: https://github.com/ssteinerx -.. _@step21: https://github.com/step21 -.. _@stepmr: https://github.com/stepmr -.. _@suledev: https://github.com/suledev -.. _@takkaria: https://github.com/takkaria -.. _@tanoabeleyra: https://github.com/tanoabeleyra -.. _@timclaessens: https://github.com/timclaessens -.. _@timfreund: https://github.com/timfreund -.. _@townie: https://github.com/townie -.. _@Travistock: https://github.com/Tavistock -.. _@trungdong: https://github.com/trungdong -.. _@Tubo: https://github.com/tubo -.. _@umrashrf: https://github.com/umrashrf -.. _@viviangb: https://github.com/viviangb -.. _@vladdoster: https://github.com/vladdoster -.. _@wadkar: https://github.com/wadkar -.. _@xpostudio4: https://github.com/xpostudio4 -.. _@yrchen: https://github.com/yrchen -.. _@yunti: https://github.com/yunti -.. _@zcho: https://github.com/zcho - -Special Thanks -~~~~~~~~~~~~~~ - -The following haven't provided code directly, but have provided guidance and advice. - -* Jannis Leidel -* Nate Aune -* Barry Morrison diff --git a/requirements.txt b/requirements.txt index 9661a823..96d5046e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,3 +16,8 @@ pytest==6.0.1 pytest-cookies==0.5.1 pytest-instafail==0.4.2 pyyaml==5.3.1 + +# Scripting +# ------------------------------------------------------------------------------ +PyGithub +jinja2 diff --git a/scripts/__init__.py b/scripts/__init__.py new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/scripts/__init__.py @@ -0,0 +1 @@ + diff --git a/scripts/update_contributors.py b/scripts/update_contributors.py new file mode 100644 index 00000000..8423ccd6 --- /dev/null +++ b/scripts/update_contributors.py @@ -0,0 +1,104 @@ +import json +from pathlib import Path +from github import Github +from github.NamedUser import NamedUser +from jinja2 import Template + +CURRENT_FILE = Path(__file__) +ROOT = CURRENT_FILE.parents[1] +BOT_LOGINS = ["pyup-bot"] + + +def main() -> None: + """ + Script entry point. + + 1. Fetch recent contribtors from the Github API + 2. Add missing ones to the JSON file + 3. Generate Markdown from JSON file + """ + recent_authors = set(iter_recent_authors()) + + # Add missing users to the JSON file + contrib_file = ContributorsJSONFile() + for author in recent_authors: + print(f"Checking if {author.login} should be added") + if author.login not in contrib_file: + contrib_file.add_contributor(author) + print(f"Added {author.login} to contributors") + contrib_file.save() + + # Generate MD file from JSON file + write_md_file(contrib_file.content) + + +def iter_recent_authors(): + """ + Fetch users who opened recently merged pull requests. + + Use Github API to fetch recent authors rather than + git CLI to work with Github usernames. + """ + repo = Github(per_page=5).get_repo("pydanny/cookiecutter-django") + recent_pulls = repo.get_pulls( + state="closed", sort="updated", direction="desc" + ).get_page(0) + for pull in recent_pulls: + if ( + pull.merged + and pull.user.type == "User" + and pull.user.login not in BOT_LOGINS + ): + yield pull.user + + +class ContributorsJSONFile: + """Helper to interact with the JSON file.""" + + file_path = ROOT / ".github" / "contributors.json" + content = None + + def __init__(self) -> None: + """Read initial content.""" + self.content = json.loads(self.file_path.read_text()) + + def __contains__(self, github_login: str): + """Provide a nice API to do: `username in file`.""" + return any( + # Github usernames are case insensitive + github_login.lower() == contrib["github_login"].lower() + for contrib in self.content + ) + + def add_contributor(self, user: NamedUser): + """Append the contributor data we care about at the end.""" + contributor_data = { + "name": user.name or user.login, + "github_login": user.login, + "twitter_username": user.twitter_username or "", + } + self.content.append(contributor_data) + + def save(self): + """Write the file to disk with indentation.""" + text_content = json.dumps(self.content, indent=2, ensure_ascii=False) + self.file_path.write_text(text_content) + + +def write_md_file(contributors): + """Generate markdown file from Jinja template.""" + contributors_template = ROOT / ".github" / "CONTRIBUTORS-template.md" + template = Template(contributors_template.read_text(), autoescape=True) + core_contributors = [c for c in contributors if c.get("is_core", False)] + other_contributors = (c for c in contributors if not c.get("is_core", False)) + other_contributors = sorted(other_contributors, key=lambda c: c["name"].lower()) + content = template.render( + core_contributors=core_contributors, other_contributors=other_contributors + ) + + file_path = ROOT / "CONTRIBUTORS.md" + file_path.write_text(content) + + +if __name__ == "__main__": + main() diff --git a/tox.ini b/tox.ini index 242183c3..cecc7435 100644 --- a/tox.ini +++ b/tox.ini @@ -8,4 +8,4 @@ commands = pytest {posargs:./tests} [testenv:black-template] deps = black -commands = black --check hooks tests setup.py docs +commands = black --check hooks tests setup.py docs scripts