From e675ea8dd83aaed018a67534323305c36d373b40 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 25 Aug 2022 15:38:09 -0700 Subject: [PATCH] Remove AUTHORS.md, .mailmap, authors.ts script (#50410) --- .dockerignore | 1 - .gitignore | 1 - .mailmap | 362 ---------------------------------- AUTHORS.md | 481 --------------------------------------------- package.json | 1 - scripts/authors.ts | 197 ------------------- 6 files changed, 1043 deletions(-) delete mode 100644 .mailmap delete mode 100644 AUTHORS.md delete mode 100644 scripts/authors.ts diff --git a/.dockerignore b/.dockerignore index f173f5a6a5158..cf23755119c2e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -20,7 +20,6 @@ scripts/run.bat scripts/word2md.js scripts/buildProtocol.js scripts/ior.js -scripts/authors.js scripts/configurePrerelease.js scripts/open-user-pr.js scripts/open-cherry-pick-pr.js diff --git a/.gitignore b/.gitignore index 33df5bf877dd5..cdf20ba5a2434 100644 --- a/.gitignore +++ b/.gitignore @@ -43,7 +43,6 @@ scripts/run.bat scripts/word2md.js scripts/buildProtocol.js scripts/ior.js -scripts/authors.js scripts/configurePrerelease.js scripts/configureLanguageServiceBuild.js scripts/open-user-pr.js diff --git a/.mailmap b/.mailmap deleted file mode 100644 index cb3334a940433..0000000000000 --- a/.mailmap +++ /dev/null @@ -1,362 +0,0 @@ - -AbubakerB # Abubaker Bashir -Alexander # Alexander Kuvaev -Aluan Haddad -Adam Freidin Adam Freidin -Adi Dahiya Adi Dahiya -Ahmad Farid ahmad-farid -Alexander Rusakov -Alex Eagle -Anatoly Ressin -Anders Hejlsberg unknown unknown Anders Hejlsberg -about-code # Andreas Martin -Andrej Baran -Andrew Ochsner -Andrew Z Allen -Andy Hanson Andy -Anil Anar -Anton Tolmachev -Anubha Mathur anubmat -Armando Aguirre -Arnaud Tournier -Arnavion # Arnav Singh -Arthur Ozga Arthur Ozga Arthur Ozga Arthur Ozga Arthur Ozga -Asad Saeeduddin -Schmavery # Avery Morin -Basarat Ali Syed Basarat Syed basarat -Bill Ticehurst Bill Ticehurst -Ben Duffield -Ben Mosher -Benjamin Bock -Benjamin Lichtman uniqueiniquity -Blake Embrey -Bowden Kelly -Brett Mayen -Bryan Forbes -Caitlin Potter -ChrisBubernak unknown # Chris Bubernak -Christophe Vidal -Chuck Jazdzewski -Colby Russell -Colin Snover -Cyrus Najmabadi CyrusNajmabadi unknown -Dafrok # Dafrok Zhang -Dan Corder -Dan Quirk Dan Quirk nknown -Daniel Rosenwasser Daniel Rosenwasser Daniel Rosenwasser Daniel Rosenwasser Daniel Rosenwasser -David Li -David Sheldrick -David Souther -Denis Nedelyaev -Dick van den Brink unknown unknown -Dirk Baeumer Dirk Bäumer # Dirk Bäumer -Dirk Holtwick -Dom Chen -Doug Ilijev -Erik Edrosa -Erik McClenney -erictsangx # Eric Tsang -Ethan Rubio -Evan Martin -Evan Sebastian -Eyas # Eyas Sharaiha -Fabian Cook -falsandtru # @falsandtru -Filipe Silva -flowmemo # @flowmemo -Frank Wallis -František Žiacik František Žiacik -Gabe Moothart -Gabriel Isenberg -Gilad Peleg -Godfrey Chan -Graeme Wicksted -Guillaume Salles -Guy Bedford guybedford -Harald Niesche -Homa Wong -Hendrik Liebau -Iain Monro -IgorNovozhilov # Igor Novozhilov -Ingvar Stepanyan -impinball # Isiah Meadows -Iwata Hidetaka -Ivo Gabe de Wolff -Jakub Młokosiewicz -James Whitney -James Henry -Jason Freeman Jason Freeman -Jason Jarrett -Jason Killian -Jason Ramsay jramsay -Jed Mao -Jeffrey Morlan -tobisek # Jiri Tobisek -Johannes Rieken -John Vilk -jbondc jbondc jbondc # Jonathan Bond-Caron -Jonathan Park -Jonathan Turner Jonathan Turner -Jonathan Toland -Jesse Schalken -Joel Day -Josh Abernathy joshaber -Josh Goldberg -Josh Kalderimis -Josh Soref -Juan Luis Boya García -Julian Williams -Justin Bay -Justin Johansson -Herrington Darkholme (´·?·`) # Herrington Darkholme -Kagami Sascha Rosylight SaschaNaz -Kanchalai Tanglertsampan Yui -Kanchalai Tanglertsampan Yui T -Kanchalai Tanglertsampan Yui -Kanchalai Tanglertsampan Yui -Kanchalai Tanglertsampan yui T -Kārlis Gaņģis -Keith Mashinter kmashint -Ken Howard -Kevin Lang -kimamula # Kenji Imamula -Kitson Kelly -Krishnadas Babu -Klaus Meinhardt -Kyle Kelley -Lorant Pinter -Lucien Greathouse -Lukas Elmer Lukas Elmer -Magnus Hiie -Martin Vseticka Martin Všeticka MartyIX -gcnew # Marin Marinov -vvakame # Masahiro Wakame -Matt McCutchen Matt McCutchen -Matt Bierner -MANISH-GIRI # Manish Giri -Max Deepfield -Micah Zoltu -Michael -Mike Busyrev -Mine Starks Mine Starks -Mohamed Hegazy -Nathan Shively-Sanders Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> -Nathan Yee -Nima Zahedi -Noah Chen -Noj Vek -mihailik # Oleg Mihailik -Oleksandr Chekhovskyi -Paul van Brenk Paul van Brenk unknown unknown unknown -Omer Sheikh -Oskar Segersva¨rd -pcan # Piero Cangianiello -pcbro <2bux89+dk3zspjmuh16o@sharklasers.com> # @pcbro -Pedro Maltez # Pedro Maltez -piloopin # @piloopin -milkisevil # Philip Bulley -progre # @progre -Prayag Verma -Punya Biswal -Rado Kirov -Ron Buckton Ron Buckton rbuckton -Rostislav Galimsky -Richard Knoll Richard Knoll -Richard Karmazín -Rowan Wyborn -Ryan Cavanaugh Ryan Cavanaugh Ryan Cavanaugh Ryan Cavanaugh -Ryohei Ikegami -Sarangan Rajamanickam -Sébastien Arod -Sergey Shandar -chico # Sergey Rubanov -Sheetal Nandi -Shengping Zhong -shyyko.serhiy@gmail.com # Shyyko Serhiy -Sam El-Husseini -Simon Hürlimann -Slawomir Sadziak -Solal Pirelli -Soo Jae Hwang -Stan Thomas -Stanislav Sysoev -Steve Lucco steveluc -Sudheesh Singanamalla -Tarik # Tarik Ozket -Tetsuharu OHZEKI # Tetsuharu Ohzeki -Tien Nguyen tien unknown #Tien Hoanhtien -Tim Perry -Tim Viiding-Spader -Tingan Ho -togru # togru -Tomas Grubliauskas -ToddThomson # Todd Thomson -Torben Fitschen -TruongSinh Tran-Nguyen -vilicvane # Vilic Vane -Vladimir Matveev vladima v2m -Vadi Taslim -Wesley Wigham Wesley Wigham Wesley Wigham -York Yao york yao yaoyao -Yuichi Nukiyama YuichiNukiyama -Zev Spitz -Zhengbo Li zhengbli Zhengbo Li Zhengbo Li tinza123 unknown Zhengbo Li zhengbli -zhongsp # Patrick Zhong -T18970237136 # @T18970237136 -JBerger -bootstraponline # @bootstraponline -yortus # @yortus -András Parditka -Anton Khlynovskiy -Charly POLY -Cotton Hou -Ethan Resnick -Marius Schulz -Mattias Buelens -Myles Megyesi -Tim Lancina -Aaron Holmes Aaron Holmes -Akshar Patel -Ali Sabzevari -Aliaksandr Radzivanovich -BuildTools # Franklin Tse -ChogyDan # Daniel Hollocher -Daniel Rosenwasser Daniel Rosenwasser -DLehenbauer # Daniel Lehenbauer -David Kmenta -E020873 # Nicolas Henry -Elisée Maurer -Emilio García-Pumarino dashaus -Guilherme Oenning -Herrington Darkholme -Ivo Gabe de Wolff -Joey Wilson -Jonathon Smith -Juan Luis Boya García -Kagami Sascha Rosylight -Lucien Greathouse -Martin Vseticka -Mattias Buelens -Michael Bromley -Paul Jolly -Perry Jiang -Peter Burns -Robert Coie -Thomas Loubiou -Tim Perry -Vidar Tonaas Fauske -Viktor Zozulyak -rix # Richard Sentino -rohitverma007 # Rohit Verma -rdosanjh # Raj Dosanjh -gdh1995 # Dahan Gong -cedvdb # @cedvdb -kpreisser # K. Preißer -e-cloud # @e-cloud -Andrew Casey Andrew Casey -Andrew Stegmaier -Benny Neugebauer -Blaine Bublitz -Charles Pierce -Daniel Król -Diogo Franco (Kovensky) -Donald Pipowitch -Halasi Tamás -Ika -Joe Chung -Kate Miháliková -Mohsen Azimi -Noel Varanda -Reiner Dolp -t_ # @t_ -TravCav # @TravCav -Vladimir Kurchatkin -William Orr -Francois Wouts -Jan Melcher Jan Melcher -Matt Mitchell -Maxwell Paul Brickner -Tycho Grouwstra -Adrian Leonhard -Alex Chugaev -Henry Mercer -Ivan Enderlin -Joe Calzaretta -Magnus Kulke -Stas Vilchik -Taras Mankovski -Thomas den Hollander -Vakhurin Sergey -Zeeshan Ahmed -Orta # Orta Therox -IdeaHunter # @IdeaHunter -kujon # Jakub Korzeniowski -Matt # @begincalendar -meyer # @meyer -micbou # @micbou -Alan Agius -Alex Khomchenko -Oussama Ben Brahim benbraou -Cameron Taggart -Eugene Timokhov -Kris Zyp -Jing Ma -Martin Hiller -Mike Morearty -Priyantha Lankapura <403912+lankaapura@users.noreply.github.com> -Remo H. Jansen -Sean Barag -Sharon Rolel -Stanislav Iliev -Wenlu Wang <805037171@163.com> wenlu.wang <805037171@163.com> kingwl <805037171@163.com> 王文璐 王文璐 -Wilson Hobbs -Yuval Greenfield -Daniel # @nieltg -Adnan Chowdhury -Esakki Raj -Jack Williams -Philippe Voinov -Stephan Ginthör <26004708+Lazarus535@users.noreply.github.com> -AdityaDaflapurkar # Aditya Daflapurkar -Eric Grube -Martyn Janes -Ricardo N Feliciano -Sergii Bezliudnyi -Adrien Gibrat -Alex Ryan -Alexader Alexander T # Alexander Tarasyuk -Andrew Faulkner -Artem Tyurin -Brandon Slade -Derek P Sifford -Dhruv Rajvanshi -Holger Jeromin -Jordi Oliveras Rovira -Joscha Feth Joscha Feth -Ken703 # Bowden Kenny -Kevin Donnelly -Maarten Sijm -Paul Koerbitz -EcoleKeine # Ecole Keine -Khải -rhysd # @rhysd -Zen <843968788@qq.com> Zzzen <843968788@qq.com> # @Zzzen -bluelovers # @bluelovers -Dan Freeman -David Sherret -David Staheli -Elizabeth Dinella -John Doe -Kevin Gibbons -Markus Johnsson -Martin Probst -Mateusz Burzyński -Steven # @styfle -Pi Lanningham -Sam Bostock -Vimal Raghubir -Vyacheslav Pukhanov -dangoo # Daniel Gooss -krk # Kerem Kat -micnic # Nicu Micleușanu -rflorian # @rflorian diff --git a/AUTHORS.md b/AUTHORS.md deleted file mode 100644 index e02b495d24240..0000000000000 --- a/AUTHORS.md +++ /dev/null @@ -1,481 +0,0 @@ -TypeScript is authored by: - - - 0verk1ll - - Abubaker Bashir - - Adam Freidin - - Adam Postma - - Adi Dahiya - - Aditya Daflapurkar - - Adnan Chowdhury - - Adrian Leonhard - - Adrien Gibrat - - Ahmad Farid - - Ajay Poshak - - Alan Agius - - Alan Pierce - - Alessandro Vergani - - Alex Chugaev - - Alex Eagle - - Alex Khomchenko - - Alex Ryan - - Alexander - - Alexander Kuvaev - - Alexander Rusakov - - Alexander Tarasyuk - - Ali Sabzevari - - Aluan Haddad - - amaksimovich2 - - Anatoly Ressin - - Anders Hejlsberg - - Anders Kaseorg - - Andre Sutherland - - Andreas Martin - - Andrej Baran - - Andrew - - Andrew Branch - - Andrew Casey - - Andrew Faulkner - - Andrew Ochsner - - Andrew Stegmaier - - Andrew Z Allen - - Andrey Roenko - - Andrii Dieiev - - András Parditka - - Andy Hanson - - Anil Anar - - Anix - - Anton Khlynovskiy - - Anton Tolmachev - - Anubha Mathur - - AnyhowStep - - Armando Aguirre - - Arnaud Tournier - - Arnav Singh - - Arpad Borsos - - Artem Tyurin - - Arthur Ozga - - Asad Saeeduddin - - Austin Cummings - - Avery Morin - - Aziz Khambati - - Basarat Ali Syed - - @begincalendar - - Ben Duffield - - Ben Lichtman - - Ben Mosher - - Benedikt Meurer - - Benjamin Bock - - Benjamin Lichtman - - Benny Neugebauer - - BigAru - - Bill Ticehurst - - Blaine Bublitz - - Blake Embrey - - @bluelovers - - @bootstraponline - - Bowden Kelly - - Bowden Kenny - - Brad Zacher - - Brandon Banks - - Brandon Bloom - - Brandon Slade - - Brendan Kenny - - Brett Mayen - - Brian Terlson - - Bryan Forbes - - Caitlin Potter - - Caleb Sander - - Cameron Taggart - - @cedvdb - - Charles - - Charles Pierce - - Charly POLY - - Chris Bubernak - - Chris Patterson - - christian - - Christophe Vidal - - Chuck Jazdzewski - - Clay Miller - - Colby Russell - - Colin Snover - - Collins Abitekaniza - - Connor Clark - - Cotton Hou - - csigs - - Cyrus Najmabadi - - Dafrok Zhang - - Dahan Gong - - Daiki Nishikawa - - Dan Corder - - Dan Freeman - - Dan Quirk - - Dan Rollo - - Daniel Gooss - - Daniel Imms - - Daniel Krom - - Daniel Król - - Daniel Lehenbauer - - Daniel Rosenwasser - - David Li - - David Sheldrick - - David Sherret - - David Souther - - David Staheli - - Denis Nedelyaev - - Derek P Sifford - - Dhruv Rajvanshi - - Dick van den Brink - - Diogo Franco (Kovensky) - - Dirk Bäumer - - Dirk Holtwick - - Dmitrijs Minajevs - - Dom Chen - - Donald Pipowitch - - Doug Ilijev - - dreamran43@gmail.com - - @e-cloud - - Ecole Keine - - Eddie Jaoude - - Edward Thomson - - EECOLOR - - Eli Barzilay - - Elizabeth Dinella - - Ely Alamillo - - Eric Grube - - Eric Tsang - - Erik Edrosa - - Erik McClenney - - Esakki Raj - - Ethan Resnick - - Ethan Rubio - - Eugene Timokhov - - Evan Cahill - - Evan Martin - - Evan Sebastian - - ExE Boss - - Eyas Sharaiha - - Fabian Cook - - @falsandtru - - Filipe Silva - - @flowmemo - - Forbes Lindesay - - Francois Hendriks - - Francois Wouts - - Frank Wallis - - František Žiacik - - Frederico Bittencourt - - fullheightcoding - - Gabe Moothart - - Gabriel Isenberg - - Gabriela Araujo Britto - - Gabriela Britto - - Gao Sheng - - gb714us - - Gilad Peleg - - Godfrey Chan - - Gorka Hernández Estomba - - Graeme Wicksted - - Guillaume Salles - - Guy Bedford - - hafiz - - Halasi Tamás - - Hendrik Liebau - - Henry Mercer - - Herrington Darkholme - - Hoang Pham - - Holger Jeromin - - Homa Wong - - Hye Sung Jung - - Iain Monro - - @IdeaHunter - - Igor Novozhilov - - Igor Oleinikov - - Ika - - iliashkolyar - - IllusionMH - - Ingvar Stepanyan - - Ingvar Stepanyan - - Isiah Meadows - - ispedals - - Ivan Enderlin - - Ivo Gabe de Wolff - - Iwata Hidetaka - - Jack Bates - - Jack Williams - - Jake Boone - - Jakub Korzeniowski - - Jakub Młokosiewicz - - James Henry - - James Keane - - James Whitney - - Jan Melcher - - Jason Freeman - - Jason Jarrett - - Jason Killian - - Jason Ramsay - - JBerger - - Jean Pierre - - Jed Mao - - Jeff Wilcox - - Jeffrey Morlan - - Jesse Schalken - - Jesse Trinity - - Jing Ma - - Jiri Tobisek - - Joe Calzaretta - - Joe Chung - - Joel Day - - Joey Watts - - Johannes Rieken - - John Doe - - John Vilk - - Jonathan Bond-Caron - - Jonathan Park - - Jonathan Toland - - Jordan Harband - - Jordi Oliveras Rovira - - Joscha Feth - - Joseph Wunderlich - - Josh Abernathy - - Josh Goldberg - - Josh Kalderimis - - Josh Soref - - Juan Luis Boya García - - Julian Williams - - Justin Bay - - Justin Johansson - - jwbay - - K. Preißer - - Kagami Sascha Rosylight - - Kanchalai Tanglertsampan - - karthikkp - - Kate Miháliková - - Keen Yee Liau - - Keith Mashinter - - Ken Howard - - Kenji Imamula - - Kerem Kat - - Kevin Donnelly - - Kevin Gibbons - - Kevin Lang - - Khải - - Kitson Kelly - - Klaus Meinhardt - - Kris Zyp - - Kyle Kelley - - Kārlis Gaņģis - - laoxiong - - Leon Aves - - Limon Monte - - Lorant Pinter - - Lucien Greathouse - - Luka Hartwig - - Lukas Elmer - - M.Yoshimura - - Maarten Sijm - - Magnus Hiie - - Magnus Kulke - - Manish Bansal - - Manish Giri - - Marcus Noble - - Marin Marinov - - Marius Schulz - - Markus Johnsson - - Markus Wolf - - Martin - - Martin Hiller - - Martin Johns - - Martin Probst - - Martin Vseticka - - Martyn Janes - - Masahiro Wakame - - Mateusz Burzyński - - Matt Bierner - - Matt McCutchen - - Matt Mitchell - - Matthew Aynalem - - Matthew Miller - - Mattias Buelens - - Max Heiber - - Maxwell Paul Brickner - - @meyer - - Micah Zoltu - - @micbou - - Michael - - Michael Crane - - Michael Henderson - - Michael Tamm - - Michael Tang - - Michal Przybys - - Mike Busyrev - - Mike Morearty - - Milosz Piechocki - - Mine Starks - - Minh Nguyen - - Mohamed Hegazy - - Mohsen Azimi - - Mukesh Prasad - - Myles Megyesi - - Nathan Day - - Nathan Fenner - - Nathan Shively-Sanders - - Nathan Yee - - ncoley - - Nicholas Yang - - Nicu Micleușanu - - @nieltg - - Nima Zahedi - - Noah Chen - - Noel Varanda - - Noel Yoo - - Noj Vek - - nrcoley - - Nuno Arruda - - Oleg Mihailik - - Oleksandr Chekhovskyi - - Omer Sheikh - - Orta Therox - - Orta Therox - - Oskar Grunning - - Oskar Segersva¨rd - - Oussama Ben Brahim - - Ozair Patel - - Patrick McCartney - - Patrick Zhong - - Paul Koerbitz - - Paul van Brenk - - @pcbro - - Pedro Maltez - - Pete Bacon Darwin - - Peter Burns - - Peter Šándor - - Philip Pesca - - Philippe Voinov - - Pi Lanningham - - Piero Cangianiello - - Pierre-Antoine Mills - - @piloopin - - Pranav Senthilnathan - - Prateek Goel - - Prateek Nayak - - Prayag Verma - - Priyantha Lankapura - - @progre - - Punya Biswal - - r7kamura - - Rado Kirov - - Raj Dosanjh - - rChaser53 - - Reiner Dolp - - Remo H. Jansen - - @rflorian - - Rhys van der Waerden - - @rhysd - - Ricardo N Feliciano - - Richard Karmazín - - Richard Knoll - - Roger Spratley - - Ron Buckton - - Rostislav Galimsky - - Rowan Wyborn - - rpgeeganage - - Ruwan Pradeep Geeganage - - Ryan Cavanaugh - - Ryan Clarke - - Ryohei Ikegami - - Salisbury, Tom - - Sam Bostock - - Sam Drugan - - Sam El-Husseini - - Sam Lanning - - Sangmin Lee - - Sanket Mishra - - Sarangan Rajamanickam - - Sasha Joseph - - Sean Barag - - Sergey Rubanov - - Sergey Shandar - - Sergey Tychinin - - Sergii Bezliudnyi - - Sergio Baidon - - Sharon Rolel - - Sheetal Nandi - - Shengping Zhong - - Sheon Han - - Shyyko Serhiy - - Siddharth Singh - - sisisin - - Slawomir Sadziak - - Solal Pirelli - - Soo Jae Hwang - - Stan Thomas - - Stanislav Iliev - - Stanislav Sysoev - - Stas Vilchik - - Stephan Ginthör - - Steve Lucco - - @styfle - - Sudheesh Singanamalla - - Suhas - - Suhas Deshpande - - superkd37 - - Sébastien Arod - - @T18970237136 - - @t_ - - Tan Li Hau - - Tapan Prakash - - Taras Mankovski - - Tarik Ozket - - Tetsuharu Ohzeki - - The Gitter Badger - - Thomas den Hollander - - Thorsten Ball - - Tien Hoanhtien - - Tim Lancina - - Tim Perry - - Tim Schaub - - Tim Suchanek - - Tim Viiding-Spader - - Tingan Ho - - Titian Cernicova-Dragomir - - tkondo - - Todd Thomson - - togru - - Tom J - - Torben Fitschen - - Toxyxer - - @TravCav - - Troy Tae - - TruongSinh Tran-Nguyen - - Tycho Grouwstra - - uhyo - - Vadi Taslim - - Vakhurin Sergey - - Valera Rozuvan - - Vilic Vane - - Vimal Raghubir - - Vladimir Kurchatkin - - Vladimir Matveev - - Vyacheslav Pukhanov - - Wenlu Wang - - Wes Souza - - Wesley Wigham - - William Orr - - Wilson Hobbs - - xiaofa - - xl1 - - Yacine Hmito - - Yang Cao - - York Yao - - @yortus - - Yoshiki Shibukawa - - Yuichi Nukiyama - - Yuval Greenfield - - Yuya Tanaka - - Z - - Zeeshan Ahmed - - Zev Spitz - - Zhengbo Li - - Zixiang Li - - @Zzzen - - 阿卡琳 diff --git a/package.json b/package.json index f6916681b4aec..24fa9d8e72b34 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,6 @@ "./bin", "./lib", "!./lib/enu", - "./AUTHORS.md", "./LICENSE.txt", "./README.md", "./SECURITY.md", diff --git a/scripts/authors.ts b/scripts/authors.ts deleted file mode 100644 index 3c7fe985dff3a..0000000000000 --- a/scripts/authors.ts +++ /dev/null @@ -1,197 +0,0 @@ -import * as fs from "fs"; -import * as path from "path"; -import * as childProcess from "child_process"; - -interface Author { - displayNames: string[]; - preferredName?: string; - emails: string[]; -} - -interface AuthorMap { - [s: string]: Author -} - -interface Command { - (...arg: string[]): void; - description?: string; -} - -const mailMapPath = path.resolve(__dirname, "../.mailmap"); -const authorsPath = path.resolve(__dirname, "../AUTHORS.md"); - -function getKnownAuthors(): Author[] { - const segmentRegExp = /\s?([^<]+)\s+<([^>]+)>/g; - const preferredNameRegeExp = /\s?#\s?([^#]+)$/; - const knownAuthors: Author[] = []; - - if (!fs.existsSync(mailMapPath)) { - throw new Error(`Could not load known users form .mailmap file at: ${mailMapPath}`); - } - - const mailMap = fs.readFileSync(mailMapPath).toString(); - - for (const line of mailMap.split("\r\n")) { - const author: Author = { displayNames: [], emails: [] }; - let match: RegExpMatchArray | null; - - while (match = segmentRegExp.exec(line)) { - author.displayNames.push(match[1]); - author.emails.push(match[2]); - } - if (match = preferredNameRegeExp.exec(line)) { - author.preferredName = match[1]; - } - if (!author.emails) continue; - knownAuthors.push(author); - if (line.indexOf("#") > 0 && !author.preferredName) { - throw new Error("Could not match preferred name for: " + line); - } - // console.log("===> line: " + line); - // console.log(JSON.stringify(author, undefined, 2)); - } - return knownAuthors; -} - -function getAuthorName(author: Author) { - return author.preferredName || author.displayNames[0]; -} - -function getKnownAuthorMaps() { - const knownAuthors = getKnownAuthors(); - const authorsByName: AuthorMap = {}; - const authorsByEmail: AuthorMap = {}; - knownAuthors.forEach(author => { - author.displayNames.forEach(n => authorsByName[n] = author); - author.emails.forEach(e => authorsByEmail[e.toLocaleLowerCase()] = author); - }); - return { - knownAuthors, - authorsByName, - authorsByEmail - }; -} - -function deduplicate(array: T[]): T[] { - const result: T[] = []; - if (array) { - for (const item of array) { - if (result.indexOf(item) < 0) { - result.push(item); - } - } - } - return result; -} - -function log(s: string) { - console.log(` ${s}`); -} - -function sortAuthors(a: string, b: string) { - if (a.charAt(0) === "@") a = a.substr(1); - if (b.charAt(0) === "@") b = b.substr(1); - if (a.toLocaleLowerCase() < b.toLocaleLowerCase()) { - return -1; - } - else { - return 1; - } -} - -namespace Commands { - export const writeAuthors: Command = () => { - const output = deduplicate(getKnownAuthors().map(getAuthorName).filter(a => !!a)).sort(sortAuthors).join("\r\n* "); - fs.writeFileSync(authorsPath, "TypeScript is authored by:\r\n* " + output); - }; - writeAuthors.description = "Write known authors to AUTHORS.md file."; - - export const listKnownAuthors: Command = () => { - deduplicate(getKnownAuthors().map(getAuthorName)).filter(a => !!a).sort(sortAuthors).forEach(log); - }; - listKnownAuthors.description = "List known authors as listed in .mailmap file."; - - - - export const listAuthors: Command = (...specs: string[]) => { - const cmd = "git shortlog -se " + specs.join(" "); - console.log(cmd); - const outputRegExp = /\d+\s+([^<]+)<([^>]+)>/; - const authors: { name: string, email: string, knownAuthor?: Author }[] = []; - const {output: [error, stdout, stderr]} = childProcess.spawnSync(`git`, ["shortlog", "-se", ...specs], { cwd: path.resolve(__dirname, "../") }); - if (error) { - console.log(stderr!.toString()); - } - else { - const output = stdout!.toString(); - const lines = output.split("\n"); - lines.forEach(line => { - if (line) { - let match: RegExpExecArray | null; - if (match = outputRegExp.exec(line)) { - authors.push({ name: match[1], email: match[2] }); - } - else { - throw new Error("Could not parse output: " + line); - } - } - }); - - const maps = getKnownAuthorMaps(); - - const lookupAuthor = ({name, email}: { name: string, email: string }) => { - return maps.authorsByEmail[email.toLocaleLowerCase()] || maps.authorsByName[name]; - }; - - const knownAuthors = authors - .map(lookupAuthor) - .filter(a => !!a) - .map(getAuthorName); - - const unknownAuthors = authors - .filter(a => !lookupAuthor(a)) - .map(a => `${a.name} <${a.email}>`); - - if (knownAuthors.length) { - console.log("\r\n"); - console.log("Found known authors: "); - console.log("====================="); - deduplicate(knownAuthors).sort(sortAuthors).forEach(log); - } - - if (unknownAuthors.length) { - console.log("\r\n"); - console.log("Found unknown authors: "); - console.log("====================="); - deduplicate(unknownAuthors).sort(sortAuthors).forEach(log); - } - - - const allAuthors = deduplicate([...knownAuthors, ...unknownAuthors].map(a => a.split("<")[0].trim())).sort(sortAuthors); - if (allAuthors.length) { - console.log("\r\n"); - console.log("Revised Authors.md: "); - console.log("====================="); - allAuthors.forEach(name => console.log(" - " + name)); - } - - } - }; - listAuthors.description = "List known and unknown authors for a given spec, e.g. 'node authors.js listAuthors origin/release-2.6..origin/release-2.7'"; -} - -const args = process.argv.slice(2); -if (args.length < 1) { - console.log("Usage: node authors.js [command]"); - console.log("List of commands: "); - Object.keys(Commands).forEach(k => console.log(` ${k}: ${(Commands as any)[k].description}`)); -} -else { - const cmd: Function = (Commands as any)[args[0]]; - if (cmd === undefined) { - console.log("Unknown command " + args[1]); - } - else { - cmd.apply(undefined, args.slice(1)); - } -}