summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Gilli <julien.gilli@joyent.com>2015-01-22 18:53:49 -0800
committerJulien Gilli <julien.gilli@joyent.com>2015-02-05 12:50:26 -0800
commit31610d0db42b4f61f85841a0d58f5014c98d0fc5 (patch)
treeec5ce6b5223afdfeca4e3a081aadb8afc1316312
parent878c40e1b3762a5f3ed48094f954fbee705f69ff (diff)
downloadnode-new-31610d0db42b4f61f85841a0d58f5014c98d0fc5.tar.gz
tools: improve tooling around AUTHORS file
Replace tools/updateAuthors.awk with tools/update-authors.js. The new tool generates an AUTHORS file that is stable-ordered alphanumerically. Fixes #9077. PR: #9088 PR-URL: https://github.com/joyent/node/pull/9088 Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com>
-rw-r--r--.mailmap12
-rw-r--r--AUTHORS1238
-rw-r--r--tools/common.js149
-rw-r--r--tools/update-authors.js144
-rw-r--r--tools/updateAuthors.awk13
5 files changed, 961 insertions, 595 deletions
diff --git a/.mailmap b/.mailmap
index f520145803..f3a15d1eca 100644
--- a/.mailmap
+++ b/.mailmap
@@ -2,6 +2,8 @@ Aaron Heckmann <aaron.heckmann@gmail.com> <aaron.heckmann+github@gmail.com>
Abe Fettig <abefettig@gmail.com> <abe@fettig.net>
Alex Kocharin <rlidwka@kocharin.ru>
Alex Kocharin <rlidwka@kocharin.ru> <alex@kocharin.ru>
+Alexey Kupershtokh <wicked@alawar.com>
+Alexis Campailla <orangemocha@github.com>
Alexis Sellier <self@cloudhead.net>
Alexis Sellier <self@cloudhead.net> <alexis@cloudhead.io>
Arlo Breault <arlolra@gmail.com>
@@ -13,10 +15,12 @@ Bert Belder <bertbelder@gmail.com> <bert@piscisaureus2.(none)>
Bert Belder <bertbelder@gmail.com> <info@2bs.nl>
Bert Belder <bertbelder@gmail.com> <piscisaureus@Berts-MacBook-Pro.local>
Brandon Benvie <brandon@bbenvie.com> <brandon@brandonbenvie.com>
+Brandon Cheng <bcheng.gt@gmail.com>
Brian White <mscdex@mscdex.net>
Brian White <mscdex@mscdex.net> <mscdex@gmail.com>
Chew Choon Keat <choonkeat@gmail.com>
Christopher Lenz <cmlenz@gmail.com> <chris@lamech.local>
+Colin Ihrig <cjihrig@gmail.com>
Daniel Berger <code+node@dpbis.net>
Daniel Chcouri <333222@gmail.com>
Daniel Gröber <darklord@darkboxed.org>
@@ -25,6 +29,7 @@ Daniel Pihlström <sciolist.se@gmail.com>
Dave Pacheco <dap@joyent.com> <dap@cs.brown.edu>
David Siegel <david@artcom.de> <david.siegel@artcom.de>
Domenic Denicola <domenic@domenicdenicola.com>
+Doron Pagot <doronpagot@gmail.com>
Eduard Burtescu <eddy_me08@yahoo.com>
Einar Otto Stangvik <einaros@gmail.com>
Elliott Cable <me@ell.io>
@@ -38,6 +43,7 @@ Friedemann Altrock <frodenius@gmail.com>
Fuji Goro <gfuji@cpan.org>
Gabriel de Perthuis <g2p.code@gmail.com>
Gil Pedersen <git@gpost.dk> <github@gpost.dk>
+Guillaume Goussard <guillaume.goussard@mgo.com>
Henry Chin <hheennrryy@gmail.com>
Herbert Vojčík <herby@mailbox.sk>
Igor Soarez <igorsoarez@gmail.com>
@@ -46,6 +52,7 @@ Isaac Z. Schlueter <i@izs.me>
Isaac Z. Schlueter <i@izs.me> <i@foohack.com>
Jake Verbaten <raynos2@gmail.com>
Jered Schmidt <tr@nslator.jp>
+Jochen Eisinger <jochen@chromium.org>
Joe Shaw <joe@joeshaw.org> <joeshaw@litl.com>
Johan Bergström <bugs@bergstroem.nu>
Johan Dahlberg <jfd@distrop.com> <dahlberg.johan@gmail.com>
@@ -69,6 +76,7 @@ Micheil Smith <micheil@brandedcode.com> <micheil@yettobebranded.net>
Mikael Bourges-Sevenier <mikeseven@gmail.com> <msevenier@motorola.com>
Nebu Pookins<nebu@nebupookins.net>
Nicholas Kinsey <pyrotechnick@feistystudios.com>
+Nicholas Vavilov <vvnicholas@gmail.com>
Onne Gorter <onne@onnlucky.com>
Paul Querna <pquerna@apache.org> <paul@querna.org>
Ray Morgan <rmorgan@zappos.com>
@@ -104,8 +112,10 @@ Trevor Burnham <trevor@databraid.com> <trevorburnham@gmail.com>
Tyler Larson <talltyler@gmail.com>
Vincent Voyer <v@fasterize.com>
Willi Eggeling <email@wje-online.de>
+Yiyu He <dead_horse@qq.com>
Yoshihiro KIKUCHI <yknetg@gmail.com>
Yuichiro MASUI <masui@masuidrive.jp>
+Yunsong Guo <eilian.yunsong@gmail.com>
Zachary Scott <zachary@zacharyscott.net> <zachary.s.scott@gmail.com>
Zoran Tomicic <ztomicic@gmail.com>
@@ -120,3 +130,5 @@ Michael Starzinger <mstarzinger@chromium.org>
Toon Verwaest <verwaest@chromium.org>
Vyacheslav Egorov <vegorov@chromium.org>
Yang Guo <yangguo@chromium.org>
+Dan Carney <dcarney@chromium.org>
+Sven Panne <svenpanne@chromium.org>
diff --git a/AUTHORS b/AUTHORS
index 3dfbf5ae00..7451cc7722 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,582 +1,656 @@
-# Authors ordered by first contribution.
-
-Ryan Dahl <ry@tinyclouds.org>
-Urban Hafner <urban@bettong.net>
-Joshaven Potter <yourtech@gmail.com>
-Abe Fettig <abefettig@gmail.com>
-Kevin van Zonneveld <kevin@vanzonneveld.net>
-Michael Carter <cartermichael@gmail.com>
-Jeff Smick <sprsquish@gmail.com>
-Jon Crosby <jon@joncrosby.me>
-Felix Geisendörfer <felix@debuggable.com>
-Ray Morgan <rmorgan@zappos.com>
-Jérémy Lal <kapouer@melix.org>
-Isaac Z. Schlueter <i@izs.me>
-Brandon Beacher <brandon.beacher@gmail.com>
-Tim Caswell <tim@creationix.com>
-Connor Dunn <connorhd@gmail.com>
-Johan Sørensen <johan@johansorensen.com>
-Friedemann Altrock <frodenius@gmail.com>
-Onne Gorter <onne@onnlucky.com>
-Rhys Jones <rhys@wave.to>
-Jan Lehnardt <jan@apache.org>
-Simon Willison <simon@simonwillison.net>
-Chew Choon Keat <choonkeat@gmail.com>
-Jered Schmidt <tr@nslator.jp>
-Michaeljohn Clement <inimino@inimino.org>
-Karl Guertin <grayrest@gr.ayre.st>
-Xavier Shay <xavier@rhnh.net>
-Christopher Lenz <cmlenz@gmail.com>
-TJ Holowaychuk <tj@vision-media.ca>
-Johan Dahlberg <jfd@distrop.com>
-Simon Cornelius P. Umacob <simoncpu@gmail.com>
-Ryan McGrath <ryan@venodesigns.net>
-Rasmus Andersson <rasmus@notion.se>
-Micheil Smith <micheil@brandedcode.com>
-Jonas Pfenniger <jonas@pfenniger.name>
-David Sklar <david.sklar@gmail.com>
-Charles Lehner <celehner1@gmail.com>
-Elliott Cable <me@ell.io>
-Benjamin Thomas <benjamin@benjaminthomas.org>
-San-Tai Hsu <v@fatpipi.com>
-Ben Williamson <benw@pobox.com>
-Joseph Pecoraro <joepeck02@gmail.com>
-Erich Ocean <erich.ocean@me.com>
-Alexis Sellier <self@cloudhead.net>
-Blaine Cook <romeda@gmail.com>
-Stanislav Opichal <opichals@gmail.com>
-Aaron Heckmann <aaron.heckmann@gmail.com>
-Mikeal Rogers <mikeal.rogers@gmail.com>
-Matt Brubeck <mbrubeck@limpet.net>
-Michael Stillwell <mjs@beebo.org>
-Yuichiro MASUI <masui@masuidrive.jp>
-Mark Hansen <mark@markhansen.co.nz>
-Zoran Tomicic <ztomicic@gmail.com>
-Jeremy Ashkenas <jashkenas@gmail.com>
-Scott González <scott.gonzalez@gmail.com>
-James Duncan <james@joyent.com>
-Arlo Breault <arlolra@gmail.com>
-Kris Kowal <kris.kowal@cixar.com>
-Jacek Becela <jacek.becela@gmail.com>
-Rob Ellis <kazoomer@gmail.com>
-Tim Smart <timehandgod@gmail.com>
-Herbert Vojčík <herby@mailbox.sk>
-Krishna Rajendran <krishna@emptybox.org>
-Nicholas Kinsey <pyrotechnick@feistystudios.com>
-Scott Taylor <scott@railsnewbie.com>
-Carson McDonald <carson@ioncannon.net>
-Matt Ranney <mjr@ranney.com>
-James Herdman <james.herdman@gmail.com>
-Julian Lamb <thepurlieu@gmail.com>
-Brian Hammond <brian@fictorial.com>
-Mathias Pettersson <mape@mape.me>
-Trevor Blackwell <tlb@tlb.org>
-Thomas Lee <thomas.lee@shinetech.com>
-Daniel Berger <code+node@dpbis.net>
-Paulo Matias <paulo.matias@usp.br>
-Peter Griess <pg@std.in>
-Jonathan Knezek <jdknezek@gmail.com>
-Jonathan Rentzsch <jwr.git@redshed.net>
-Ben Noordhuis <info@bnoordhuis.nl>
-Elijah Insua <tmpvar@gmail.com>
-Andrew Johnston <apjohnsto@gmail.com>
-Brian White <mscdex@mscdex.net>
-Aapo Laitinen <aapo.laitinen@iki.fi>
-Sam Hughes <sam@samuelhughes.com>
-Orlando Vazquez <ovazquez@gmail.com>
-Raffaele Sena <raff367@gmail.com>
-Brian McKenna <brian@brianmckenna.org>
-Paul Querna <pquerna@apache.org>
-Ben Lowery <ben@blowery.org>
-Peter Dekkers <soderblom.peter@gmail.com>
-David Siegel <david@artcom.de>
-Marshall Culpepper <marshall.law@gmail.com>
-Ruben Rodriguez <cha0s@therealcha0s.net>
-Dmitry Baranovskiy <Dmitry@Baranovskiy.com>
-Blake Mizerany <blake.mizerany@gmail.com>
-Jerome Etienne <jerome.etienne@gmail.com>
-Dmitriy Shalashov <skaurus@gmail.com>
-Adam Wiggins <adam@heroku.com>
-Rick Olson <technoweenie@gmail.com>
-Sergey Kryzhanovsky <skryzhanovsky@gmail.com>
-Marco Rogers <marco.rogers@gmail.com>
-Benjamin Fritsch <beanie@benle.de>
-Jan Kassens <jan@kassens.net>
-Robert Keizer <root@black.bluerack.ca>
-Sam Shull <brickysam26@gmail.com>
-Chandra Sekar S <chandru.in@gmail.com>
-Andrew Naylor <argon@mkbot.net>
-Benjamin Kramer <benny.kra@gmail.com>
-Danny Coates <dannycoates@gmail.com>
-Nick Stenning <nick@whiteink.com>
-Bert Belder <bertbelder@gmail.com>
-Trent Mick <trentm@gmail.com>
-Fedor Indutny <fedor.indutny@gmail.com>
-Illarionov Oleg <oleg@emby.ru>
-Aria Stewart <aredridel@nbtsc.org>
-Johan Euphrosine <proppy@aminche.com>
-Russell Haering <russellhaering@gmail.com>
-Bradley Meck <bradley.meck@gmail.com>
-Tobie Langel <tobie.langel@gmail.com>
-Tony Metzidis <tonym@tonym.us>
-Mark Nottingham <mnot@mnot.net>
-Sam Stephenson <sam@37signals.com>
-Jorge Chamorro Bieling <jorge@jorgechamorro.com>
-Evan Larkin <evan.larkin.il.com>
-Sean Coates <sean@seancoates.com>
-Tom Hughes-Croucher <tom.hughes@palm.com>
-Joshua Peek <josh@joshpeek.com>
-Nathan Rajlich <nathan@tootallnate.net>
-Peteris Krumins <peteris.krumins@gmail.com>
-AJ ONeal <coolaj86@gmail.com>
-Sami Samhuri <sami.samhuri@gmail.com>
-Nikhil Marathe <nsm.nikhil@gmail.com>
-Vitali Lovich <vitali.lovich@palm.com>
-Stéphan Kochen <stephan@kochen.nl>
-Oleg Efimov <efimovov@gmail.com>
-Guillaume Tuton <guillaume@tuton.fr>
-Tim Cooijmans <tim@aapopfiets.nl>
-Dan Søndergaard <dan1990@gmail.com>
-Silas Sewell <silas@sewell.ch>
-Wade Simmons <wade@wades.im>
-Daniel Gröber <darklord@darkboxed.org>
-Travis Swicegood <development@domain51.com>
-Oleg Slobodskoi <oleg008@gmail.com>
-Jeremy Martin <jmar777@gmail.com>
-Michael Wilber <gcr@sneakygcr.net>
-Sean Braithwaite <brapse@gmail.com>
-Anders Conbere <aconbere@gmail.com>
-Devin Torres <devin@devintorres.com>
-Theo Schlossnagle <jesus@omniti.com>
-Kai Chen <kaichenxyz@gmail.com>
-Daniel Chcouri <333222@gmail.com>
-Mihai Călin Bazon <mihai@bazon.net>
-Ali Farhadi <a.farhadi@gmail.com>
-Daniel Ennis <aikar@aikar.co>
-Carter Allen <CarterA@opt-6.com>
-Greg Hughes <greg@ghughes.com>
-David Trejo <david.daniel.trejo@gmail.com>
-Joe Walnes <joe@walnes.com>
-Koichi Kobayashi <koichik@improvement.jp>
-Konstantin Käfer <github@kkaefer.com>
-Richard Rodger <richard@ricebridge.com>
-Andreas Reich <andreas@reich.name>
-Tony Huang <cnwzhjs@gmail.com>
-Dean McNamee <dean@gmail.com>
-Trevor Burnham <trevor@databraid.com>
-Zachary Scott <zachary@zacharyscott.net>
-Arnout Kazemier <info@3rd-Eden.com>
-George Stagas <gstagas@gmail.com>
-Ben Weaver <ben@orangesoda.net>
-Scott McWhirter <scott.mcwhirter@joyent.com>
-Jakub Lekstan <jakub.lekstan@dreamlab.pl>
-Nick Campbell <nicholas.j.campbell@gmail.com>
-Nebu Pookins <nebu@nebupookins.net>
-Tim Baumann <tim@timbaumann.info>
-Robert Mustacchi <rm@joyent.com>
-George Miroshnykov <george.miroshnykov@gmail.com>
-Mark Cavage <mark.cavage@joyent.com>
-Håvard Stranden <havard.stranden@gmail.com>
-Marcel Laverdet <marcel@laverdet.com>
-Alexandre Marangone <a.marangone@gmail.com>
-Ryan Petrello <lists@ryanpetrello.com>
-Fuji Goro <gfuji@cpan.org>
-Siddharth Mahendraker <siddharth_mahen@hotmail.com>
-Dave Pacheco <dap@joyent.com>
-Mathias Buus <m@ge.tt>
-Henry Rawas <henryr@schakra.com>
-Yoshihiro KIKUCHI <yknetg@gmail.com>
-Brett Kiefer <kiefer@gmail.com>
-Mariano Iglesias <mariano@cricava.com>
-Jörn Horstmann <git@jhorstmann.net>
-Joe Shaw <joe@joeshaw.org>
-Niklas Fiekas <niklas.fiekas@googlemail.com>
-Adam Luikart <me@adamluikart.com>
-Artem Zaytsev <a.arepo@gmail.com>
-Alex Xu <alex_y_xu@yahoo.ca>
-Jeremy Selier <jeremy@jolicloud.com>
-Igor Zinkovsky <igorzi@microsoft.com>
-Kip Gebhardt <kip.gebhardt@voxer.com>
-Stefan Rusu <saltwaterc@gmail.com>
-Shigeki Ohtsu <ohtsu@d.jp>
-Wojciech Wnętrzak <w.wnetrzak@gmail.com>
-Devon Govett <devongovett@gmail.com>
-Steve Engledow <steve.engledow@proxama.com>
-Pierre-Alexandre St-Jean <pierrealexandre.stjean@gmail.com>
-Reid Burke <me@reidburke.com>
-Vicente Jimenez Aguilar <googuy@gmail.com>
-Tadashi SAWADA <cesare@mayverse.jp>
-Jeroen Janssen <jeroen.janssen@gmail.com>
-Daniel Pihlström <sciolist.se@gmail.com>
-Stefan Bühler <stbuehler@web.de>
-Alexander Uvarov <alexander.uvarov@gmail.com>
-Aku Kotkavuo <aku@hibana.net>
-Peter Bright <drpizza@quiscalusmexicanus.org>
-Logan Smyth <loganfsmyth@gmail.com>
-Christopher Wright <christopherwright@gmail.com>
-Glen Low <glen.low@pixelglow.com>
-Thomas Shinnick <tshinnic@gmail.com>
-Mickaël Delahaye <mickael.delahaye@gmail.com>
-Antranig Basman <antranig.basman@colorado.edu>
-Maciej Małecki <maciej.malecki@notimplemented.org>
-Evan Martin <martine@danga.com>
-Peter Lyons <pete@peterlyons.com>
-Jann Horn <jannhorn@googlemail.com>
-Abimanyu Raja <abimanyuraja@gmail.com>
-Niclas Hoyer <niclas@verbugt.de>
-Karl Skomski <karl@skomski.com>
-Michael Jackson <mjijackson@gmail.com>
-Ashok Mudukutore <ashok@lineratesystems.com>
-Sean Cunningham <sean.cunningham@mandiant.com>
-Vitor Balocco <vitorbal@gmail.com>
-Ben Leslie <benno@benno.id.au>
-Eric Lovett <etlovett@gmail.com>
-Christian Tellnes <christian@tellnes.no>
-Colton Baker <github@netrefuge.net>
-Tyler Larson <talltyler@gmail.com>
-Tomasz Janczuk <tomasz@janczuk.org>
-Ilya Dmitrichenko <errordeveloper@gmail.com>
-Simen Brekken <simen.brekken@gmail.com>
-Guglielmo Ferri <44gatti@gmail.com>
-Thomas Parslow <tom@almostobsolete.net>
-Ryan Emery <seebees@gmail.com>
-Jordan Sissel <jls@semicomplete.com>
-Matt Robenolt <matt@ydekproductions.com>
-Jacob H.C. Kragh <jhckragh@gmail.com>
-Benjamin Pasero <benjamin.pasero@gmail.com>
-Scott Anderson <sanderson7@gmail.com>
-Yoji SHIDARA <dara@shidara.net>
-Mathias Bynens <mathias@qiwi.be>
-Łukasz Walukiewicz <lukasz@walukiewicz.eu>
-Artur Adib <arturadib@gmail.com>
-E. Azer Koçulu <azer@kodfabrik.com>
-Paddy Byers <paddy.byers@gmail.com>
-Roman Shtylman <shtylman@gmail.com>
-Kyle Robinson Young <kyle@dontkry.com>
-Tim Oxley <secoif@gmail.com>
-Eduard Burtescu <eddy_me08@yahoo.com>
-Ingmar Runge <ingmar@irsoft.de>
-Russ Bradberry <rbradberry@gmail.com>
-Andreas Madsen <amwebdk@gmail.com>
-Adam Malcontenti-Wilson <adman.com@gmail.com>
-Avi Flax <avi@aviflax.com>
-Pedro Teixeira <pedro.teixeira@gmail.com>
-Johan Bergström <bugs@bergstroem.nu>
-James Hartig <james.hartig@grooveshark.com>
-Shannen Saez <shannenlaptop@gmail.com>
-Seong-Rak Choi <ragiragi@hanmail.net>
-Dave Irvine <davman99@gmail.com>
-Ju-yeong Park <interruptz@gmail.com>
-Phil Sung <psung@dnanexus.com>
-Damon Oehlman <damon.oehlman@sidelab.com>
-Mikael Bourges-Sevenier <mikeseven@gmail.com>
-Emerson Macedo <emerleite@gmail.com>
-Ryunosuke SATO <tricknotes.rs@gmail.com>
-Michael Bernstein <michaelrbernstein@gmail.com>
-Guillermo Rauch <rauchg@gmail.com>
-Dan Williams <dan@igniter.com>
-Brandon Benvie <brandon@bbenvie.com>
-Nicolas LaCasse <nlacasse@borderstylo.com>
-Dan VerWeire <dverweire@gmail.com>
-Matthew Fitzsimmons <matt@joyent.com>
-Philip Tellis <philip.tellis@gmail.com>
-Christopher Jeffrey <chjjeffrey@gmail.com>
-Seth Fitzsimmons <seth@mojodna.net>
-Einar Otto Stangvik <einaros@gmail.com>
-Paul Vorbach <paul@vorb.de>
-Luke Gallagher <notfornoone@gmail.com>
-Tomasz Buchert <tomek.buchert@gmail.com>
-Myles Byrne <myles@myles.id.au>
-T.C. Hollingsworth <tchollingsworth@gmail.com>
-Cam Pedersen <diffference@gmail.com>
-Roly Fentanes <roly426@gmail.com>
-Ted Young <ted@radicaldesigns.org>
-Joshua Holbrook <josh.holbrook@gmail.com>
-Blake Miner <miner.blake@gmail.com>
-Vincent Ollivier <contact@vincentollivier.com>
-Jimb Esser <jimb@railgun3d.com>
-Sambasiva Suda <sambasivarao@gmail.com>
-Sadique Ali <sadiqalikm@gmail.com>
-Dmitry Nizovtsev <dmitry@ukrteam.com>
-Alex Kocharin <rlidwka@kocharin.ru>
-Ming Liu <vmliu1@gmail.com>
-Shea Levy <shea@shealevy.com>
-Nao Iizuka <iizuka@kyu-mu.net>
-Christian Ress <christian@ressonline.de>
-Rod Vagg <rod@vagg.org>
-Matt Ezell <ezell.matt@gmail.com>
-Charlie McConnell <charlie@charlieistheman.com>
-Farid Neshat <FaridN_SOAD@yahoo.com>
-Johannes Wüller <johanneswueller@gmail.com>
-Erik Lundin <mjor.himself@gmail.com>
-Bryan Cantrill <bryan@joyent.com>
-Yosef Dinerstein <yosefd@microsoft.com>
-Nathan Friedly <nathan@nfriedly.com>
-Aaron Jacobs <jacobsa@google.com>
-Mustansir Golawala <mgolawala@gmail.com>
-Atsuo Fukaya <fukayatsu@gmail.com>
-Domenic Denicola <domenic@domenicdenicola.com>
-Joshua S. Weinstein <josher19@users.sf.net>
-Dane Springmeyer <dane@dbsgeo.com>
-Erik Dubbelboer <erik@dubbelboer.com>
-Malte-Thorben Bruns <skenqbx@googlemail.com>
-Michael Thomas <aelmalinka@gmail.com>
-Garen Torikian <gjtorikian@gmail.com>
-EungJun Yi <semtlenori@gmail.com>
-Vincent Voyer <v@fasterize.com>
-Takahiro ANDO <takahiro.ando@gmail.com>
-Brian Schroeder <bts@gmail.com>
-J. Lee Coltrane <lee@projectmastermind.com>
-Javier Hernández <jhernandez@emergya.com>
-James Koval <james.ross.koval@gmail.com>
-Kevin Gadd <kevin.gadd@gmail.com>
-Ray Solomon <raybsolomon@gmail.com>
-Kevin Bowman <github@magicmonkey.org>
-Erwin van der Koogh <github@koogh.com>
-Matt Gollob <mattgollob@gmail.com>
-Simon Sturmer <sstur@me.com>
-Joel Brandt <joelrbrandt@gmail.com>
-Marc Harter <wavded@gmail.com>
-Nuno Job <nunojobpinto@gmail.com>
-Ben Kelly <ben@wanderview.com>
-Felix Böhm <felixboehm55@googlemail.com>
-George Shank <shankga@gmail.com>
-Gabriel de Perthuis <g2p.code@gmail.com>
-Vladimir Beloborodov <redhead.ru@gmail.com>
-Tim Macfarlane <timmacfarlane@gmail.com>
-Jonas Westerlund <jonas.westerlund@me.com>
-Dominic Tarr <dominic.tarr@gmail.com>
-Justin Plock <jplock@gmail.com>
-Timothy J Fontaine <tjfontaine@gmail.com>
-Toshihiro Nakamura <toshihiro.nakamura@gmail.com>
-Ivan Torres <mexpolk@gmail.com>
-Philipp Hagemeister <phihag@phihag.de>
-Mike Morearty <mike@morearty.com>
-Pavel Lang <langpavel@phpskelet.org>
-Peter Rybin <peter.rybin@gmail.com>
-Joe Andaverde <joe@andaverde.net>
-Eugen Dueck <eugen@dueck.org>
-Gil Pedersen <git@gpost.dk>
-Tyler Neylon <tylerneylon@gmail.com>
-Josh Erickson <josh@snoj.us>
-Golo Roden <webmaster@goloroden.de>
-Ron Korving <rkorving@wizcorp.jp>
-Brandon Wilson <chlavois@gmail.com>
-Ian Babrou <ibobrik@gmail.com>
-Bearice Ren <bearice@gmail.com>
-Ankur Oberoi <aoberoi@gmail.com>
-Atsuya Takagi <atsuya.takagi@gmail.com>
-Pooya Karimian <pkarimian@sencha.com>
-Frédéric Germain <frederic.germain@gmail.com>
-Robin Lee <cheeselee@fedoraproject.org>
-Kazuyuki Yamada <tasogare.pg@gmail.com>
-Adam Blackburn <regality@gmail.com>
-Willi Eggeling <email@wje-online.de>
-Paul Serby <paul.serby@clock.co.uk>
-Andrew Paprocki <andrew@ishiboo.com>
-Ricky Ng-Adam <rngadam@lophilo.com>
-Aaditya Bhatia <aadityabhatia@gmail.com>
-Max Ogden <max@maxogden.com>
-Igor Soarez <igorsoarez@gmail.com>
-Olivier Lalonde <olalonde@gmail.com>
-Francois Marier <francois@mozilla.com>
-Trevor Norris <trev.norris@gmail.com>
-Kai Sasaki Lewuathe <sasaki_kai@lewuathe.sakura.ne.jp>
-Nicolas Chambrier <naholyr@gmail.com>
-Tim Bradshaw <tfb@cley.com>
-Johannes Ewald <mail@johannesewald.de>
-Chris Dent <chris.dent@gmail.com>
-Dan Milon <danmilon@gmail.com>
-Brandon Philips <brandon.philips@rackspace.com>
-Frederico Silva <frederico.silva@gmail.com>
-Jan Wynholds <jan@rootmusic.com>
-Girish Ramakrishnan <girish@forwardbias.in>
-Anthony Pesch <anthony@usamp.com>
-Stephen Gallagher <sgallagh@redhat.com>
-Sergey Kholodilov <serghol@gmail.com>
-Tim Kuijsten <tim@netsend.nl>
-Michael Axiak <mike@axiak.net>
-Chad Rhyner <chadrhyner@gmail.com>
-Ben Taber <ben.taber@gmail.com>
-Luke Arduini <luke.arduini@me.com>
-Luke Bayes <lbayes@patternpark.com>
-Nirk Niggler <nirk.niggler@gmail.com>
-James Hight <james@zavoo.com>
-Mike Harsch <mike@harschsystems.com>
-Alexandr Emelin <frvzmb@gmail.com>
-James Campos <james.r.campos@gmail.com>
-Dave Olszewski <cxreg@pobox.com>
-Tim Price <timprice@mangoraft.com>
-Jake Verbaten <raynos2@gmail.com>
-Jacob Gable <jacob.gable@gmail.com>
-Rick Yakubowski <richard@orpha-systems.com>
-Dan Kohn <dan@dankohn.com>
-Andy Burke <aburke@bitflood.org>
-Sugendran Ganess <sugendran@sugendran.net>
-Jim Schubert <james.schubert@gmail.com>
-Victor Costan <costan@gmail.com>
-Arianit Uka <arianit@bigvikinggames.com>
-Andrei Sedoi <bsnote@gmail.com>
-Eugene Girshov <eugene.girshov@nixu.com>
-Evan Oxfeld <eoxfeld@nearinfinity.com>
-Lars-Magnus Skog <lars.magnus.skog@gmail.com>
-Raymond Feng <enjoyjava@gmail.com>
-Aaron Cannon <cannona@fireantproductions.com>
-Xidorn Quan <quanxunzhen@gmail.com>
-Paolo Fragomeni <paolo@async.ly>
-Scott Blomquist <github@scott.blomqui.st>
-Henry Chin <hheennrryy@gmail.com>
-Julian Gruber <julian@juliangruber.com>
-JeongHoon Byun <outsideris@gmail.com>
-Iskren Ivov Chernev <iskren.chernev@gmail.com>
-Alexey Kupershtokh <alexey.kupershtokh@gmail.com>
-Benjamin Ruston <benjy.ruston@gmail.com>
-Manav Rathi <manav.r@directi.com>
-Marcin Kostrzewa <marcinkostrzewa@yahoo.com>
-Suwon Chae <doortts@gmail.com>
-David Braun <NodeJS-box@snkmail.com>
-Mitar Milutinovic <mitar.git@tnode.com>
-Michael Hart <michael.hart.au@gmail.com>
-Jeff Barczewski <jeff.barczewski@gmail.com>
-Andrew Hart <hartandrewr@gmail.com>
-Rafael Garcia <rgarcia2009@gmail.com>
-Tobias Müllerleile <tobias@muellerleile.net>
-Stanislav Ochotnicky <sochotnicky@redhat.com>
-Ryan Graham <r.m.graham@gmail.com>
-Kelly Gerber <kellygerber22@yahoo.com>
-Ryan Doenges <rhdoenges@gmail.com>
-Sean Silva <chisophugis@gmail.com>
-Miroslav Bajtoš <miro.bajtos@gmail.com>
-Olof Johansson <olof@ethup.se>
-Sam Roberts <vieuxtech@gmail.com>
-Kevin Locke <kevin@kevinlocke.name>
-Daniel Moore <polaris@northhorizon.net>
-Robert Kowalski <rok@kowalski.gd>
-Benoit Vallée <github@benoitvallee.net>
-Ryuichi Okumura <okuryu@okuryu.com>
-Brandon Frohs <bfrohs@gmail.com>
-Nick Sullivan <nick@sullivanflock.com>
-Nathan Zadoks <nathan@nathan7.eu>
-Rafael Henrique Moreira <rafadev7@gmail.com>
-Daniel G. Taylor <dan@programmer-art.org>
-Kiyoshi Nomo <tokyoincidents.g@gmail.com>
-Veres Lajos <vlajos@gmail.com>
-Yuan Chuan <yuanchuan23@gmail.com>
-Krzysztof Chrapka <chrapka.k@gmail.com>
-Linus Mårtensson <linus.martensson@sonymobile.com>
-Peter Rust <peter@cornerstonenw.com>
-Shuan Wang <shuanwang@gmail.com>
-Wyatt Preul <wpreul@gmail.com>
-David Björklund <david.bjorklund@gmail.com>
-Dav Glass <davglass@gmail.com>
-Andrew Chilton <andychilton@gmail.com>
-Antony Bailey <support@antonybailey.net>
-Forrest L Norvell <ogd@aoaioxxysz.net>
-Evan Solomon <evan@evanalyze.com>
-Eran Hammer <eran@hueniverse.com>
-Daniel Chatfield <chatfielddaniel@gmail.com>
-Eivind Uggedal <eivind@uggedal.com>
-Edward Hutchins <eahutchins@gmail.com>
-Chris Wren <cthewren@gmail.com>
-Duan Yao <duanyao@ustc.edu>
-Matthias Bartelmeß <mba@fourplusone.de>
-James Halliday <mail@substack.net>
-Matthew Aynalem <maynalem@gmail.com>
-Vsevolod Strukchinsky <floatdrop@yandex-team.ru>
-Jay Beavers <jay@hikinghomeschoolers.org>
-Eric Schrock <Eric.Schrock@delphix.com>
-Jeff Switzer <git@skratchdot.com>
-Glen Mailer <glenjamin@gmail.com>
-Jason Gerfen <jason.gerfen@gmail.com>
-Patrik Stutz <patrik.stutz@gmail.com>
-Zarko Stankovic <stankovic.zarko@gmail.com>
-Maxim Bogushevich <boga1@mail.ru>
-Phillip Alexander <git@phillipalexander.io>
-Thom Seddon <thom@nightworld.com>
-Nick Simmons <nick.simmons@jadedpixel.com>
-Jacob Groundwater <groundwater@gmail.com>
-Jackson Tian <shyvo1987@gmail.com>
-fengmk2 <fengmk2@gmail.com>
-Tim Wood <washwithcare@gmail.com>
-Linus Unnebäck <linus@folkdatorn.se>
-Nikolai Vavilov <vvnicholas@gmail.com>
-Michael Ridgway <mcridgway@gmail.com>
-Yazhong Liu <yorkiefixer@gmail.com>
-Gabriel Falkenberg <gabriel.falkenberg@gmail.com>
-Kai Groner <kai@gronr.com>
-Steven Kabbes <stevenkabbes@gmail.com>
-Gabriel Farrell <g@grrawr.com>
-Nicolas Kaiser <nikai@nikai.net>
-Ahamed Nafeez <ahamed.nafeez@gmail.com>
-Cam Swords <cam.swords@gmail.com>
-Paul Loyd <pavelko95@gmail.com>
-Benjamin Waters <benjamin.waters@outlook.com>
-Lev Gimelfarb <lev.gimelfarb@gmail.com>
-Peter Flannery <flannery.peter@ntlworld.com>
-Tuğrul Topuz <tugrultopuz@gmail.com>
-Lorenz Leutgeb <lorenz.leutgeb@gmail.com>
-Brandon Cheng <bcheng.gt@gmail.com>
-Alexis Campailla <alexis@janeasystems.com>
-Yang Tianyang <contact@ayanamist.com>
-Tom Gallacher <tomgallacher23@gmail.com>
-Jo Liss <joliss42@gmail.com>
-Jun Ma <roammm@gmail.com>
-Jacob Hoffman-Andrews <github@hoffman-andrews.com>
-Keith M Wesolowski <wesolows@joyent.com>
-Maxime Quandalle <maxime.quandalle@gmail.com>
-Doron Pagot <doronpagot@gmail.com>
-Oguz Bastemur <obastemur@gmail.com>
-Kenan Sulayman <kenan@sly.mn>
-Christian Schulz <me@rndm.de>
-Pedro Ballesteros <nitroduna@gmail.com>
-Anton Khlynovskiy <subzey@gmail.com>
-Nicolas Talle <dev@nicolab.net>
-Austin Moran <moraustin@gmail.com>
-Mike Pennisi <mike@mikepennisi.com>
-Maxwell Krohn <themax@gmail.com>
-Saúl Ibarra Corretgé <saghul@gmail.com>
-Greg Brail <greg@apigee.com>
-Shuhei Kagawa <shuhei.kagawa@gmail.com>
-Yuriy Nemtsov <nemtsov@gmail.com>
-Josh Dague <daguej@email.uc.edu>
-Goh Yisheng (Andrew) <mail.yisheng@gmail.com>
-William Bert <william@spanishdict.com>
-James Pickard <james.pickard@gmail.com>
-Andrew Low <Andrew_Low@ca.ibm.com>
-Nick Apperson <apperson@gmail.com>
-C. Scott Ananian <cscott@cscott.net>
-Yuki KAN <re@pixely.jp>
-Evan Carroll <me@evancarroll.com>
-goussardg <guillaume.goussard@mgo.com>
-Geir Hauge <geir.hauge@ntnu.no>
-Farrin Reid <blakmatrix@gmail.com>
-Denys Zariaiev <denys.zariaiev@gmail.com>
-Sean McArthur <sean.monstar@gmail.com>
-Rasmus Christian Pedersen <zerhacken@yahoo.com>
-Greg Sabia Tucker <greg@narrowlabs.com>
-Calvin Metcalf <calvin.metcalf@gmail.com>
-cjihrig <cjihrig@gmail.com>
-Chris Barber <chris@cb1inc.com>
-Nick Apperson <apperson@gmail.com>
-Oguz Bastemur <obastemur@gmail.com>
-Maurice Butler <maurice.butler@gmail.com>
-Chris Dickinson <christopher.s.dickinson@gmail.com>
-Julien Gilli <julien.gilli@joyent.com>
-Jakob Gillich <jakob@gillich.me>
-James Halliday <mail@substack.net>
-Kevin Simper <kevin.simper@gmail.com>
-Jackson Tian <shyvo1987@gmail.com>
-Tristan Berger <tristan.berger@gmail.com>
-Mathias Schreck <schreck.mathias@googlemail.com>
-Steven R. Loomis <srloomis@us.ibm.com>
-Matthew Fitzsimmons <matt@fitzage.com>
-Swaagie <info@martijnswaagman.nl>
-Emmanuel Odeke <emmanuel.odeke@cmgcanada.ca>
-Eric Mill <eric@konklone.com>
-Brendan Ashworth <squirrelslikeacorns@gmail.com>
-Alejandro Oviedo <alejandro.oviedo.g@gmail.com>
-pkcs <pkcs@gmx.com>
-Saúl Ibarra Corretgé <saghul@gmail.com>
-silverwind <silv3rwind@gmail.com>
-Steven R. Loomis <srl@icu-project.org>
-James M Snell <jasnell@gmail.com>
+AJ ONeal
+Aaditya Bhatia
+Aapo Laitinen
+Aaron Cannon
+Aaron Heckmann
+Aaron Jacobs
+Abe Fettig
+Abimanyu Raja
+Adam Blackburn
+Adam Lippai
+Adam Luikart
+Adam Malcontenti-Wilson
+Adam Wiggins
+Adrian Lang
+Ahamed Nafeez
+Aku Kotkavuo
+Alejandro Oviedo
+Alex Kocharin
+Alex Xu
+Alexander Uvarov
+Alexandr Emelin
+Alexandre Marangone
+Alexey Kupershtokh
+Alexis Campailla
+Alexis Sellier
+Ali Farhadi
+Anders Conbere
+Andreas Madsen
+Andreas Reich
+Andrei Sedoi
+Andrew Chilton
+Andrew Hart
+Andrew Johnston
+Andrew Low
+Andrew Naylor
+Andrew Oppenlander
+Andrew Paprocki
+Andrew Teich
+Andrius Bentkus
+Andy Burke
+Ankur Oberoi
+Anthony Pesch
+Anton Khlynovskiy
+Antony Bailey
+Antranig Basman
+Aria Stewart
+Arianit Uka
+Arlo Breault
+Arnout Kazemier
+Artem Zaytsev
+Artur Adib
+Artur Cistov
+Ashok Mudukutore
+Atsuo Fukaya
+Atsuya Takagi
+Austin Moran
+Avi Flax
+Bearice Ren
+Ben Burns
+Ben Kelly
+Ben Leslie
+Ben Lowery
+Ben Noordhuis
+Ben Taber
+Ben Weaver
+Ben Williamson
+Benjamin Fritsch
+Benjamin Kramer
+Benjamin Pasero
+Benjamin Ruston
+Benjamin Thomas
+Benjamin Waters
+Benoit Vallée
+Bert Belder
+Blaine Cook
+Blake Miner
+Blake Mizerany
+Bradley Meck
+Brandon Beacher
+Brandon Benvie
+Brandon Cheng
+Brandon Frohs
+Brandon Philips
+Brandon Wilson
+Brendan Ashworth
+Brett Kiefer
+Brian Hammond
+Brian McKenna
+Brian Schroeder
+Brian White
+Bryan Cantrill
+C. Scott Ananian
+CGavrila
+Calvin Metcalf
+Cam Pedersen
+Cam Swords
+Carlos Campderrós
+Carson McDonald
+Carter Allen
+Chad Rhyner
+Chandra Sekar S
+Charles
+Charles Lehner
+Charlie McConnell
+Cheng Zhao
+Chew Choon Keat
+Chris Barber
+Chris Dent
+Chris Dickinson
+ChrisWren
+Christian
+Christian Ress
+Christian Tellnes
+Christopher Jeffrey
+Christopher Lenz
+Christopher Wright
+Colin Ihrig
+Colton Baker
+Connor Dunn
+Damon Oehlman
+Dan Carney
+Dan Kaplun
+Dan Kohn
+Dan Milon
+Dan Søndergaard
+Dan VerWeire
+Dan Williams
+Dane Springmeyer
+Daniel Berger
+Daniel Chatfield
+Daniel Chcouri
+Daniel Clifford
+Daniel Ennis
+Daniel G. Taylor
+Daniel Gröber
+Daniel Moore
+Daniel Pihlström
+Danny Coates
+Dav Glass
+Dave Irvine
+Dave Olszewski
+Dave Pacheco
+David Björklund
+David Braun
+David Chan
+David Siegel
+David Sklar
+David Trejo
+Dean McNamee
+Denys Zariaiev
+Devin Torres
+Devon Govett
+Dmitriy Shalashov
+Dmitry Baranovskiy
+Dmitry Nizovtsev
+Domenic Denicola
+Dominic Tarr
+Doron Pagot
+Duan Yao
+E. Azer Koçulu
+Ed Morley
+Ed Umansky
+Eduard Burtescu
+Edward Hutchins
+Einar Otto Stangvik
+Eivind Uggedal
+Eli Skeggs
+Elijah Insua
+Elliott Cable
+Emerson Macedo
+Emmanuel Odeke
+Eran Hammer
+Eric Lovett
+Eric Mill
+Eric Schrock
+Erik Corry
+Erik Dubbelboer
+Erik Lundin
+Erwin van der Koogh
+Euan
+Eugen Dueck
+Eugene Girshov
+EungJun Yi
+Evan Carroll
+Evan Larkin
+Evan Lucas
+Evan Martin
+Evan Oxfeld
+Evan Rutledge Borden
+Evan Solomon
+Ezequiel Rabinovich
+Farid Neshat
+Farrin Reid
+Fedor Indutny
+Felix Böhm
+Felix Geisendörfer
+Feross Aboukhadijeh
+Forrest L Norvell
+Francois Marier
+Fred K. Schott
+Frederico Silva
+Friedemann Altrock
+Frédéric Germain
+Fuji Goro
+Gabriel Falkenberg
+Gabriel Farrell
+Gabriel Wicke
+Gabriel de Perthuis
+Garen Torikian
+Geir Hauge
+George Miroshnykov
+George Shank
+George Stagas
+Gil Pedersen
+Girish Ramakrishnan
+Glen Low
+Glen Mailer
+Goh Yisheng (Andrew)
+Golo Roden
+Greg Brail
+Greg Hughes
+Greg Sabia Tucker
+Guglielmo Ferri
+Guilherme de Souza
+Guillaume Goussard
+Guillaume Tuton
+Guillermo Rauch
+Henry Chin
+Henry Rawas
+Herbert Vojčík
+Herman Lee
+Håvard Stranden
+Ian Babrou
+Igor Soarez
+Igor Zinkovsky
+Illarionov Oleg
+Ilya Dmitrichenko
+Ingmar Runge
+Ionică Bizău
+Isaac Burns
+Isaac Z. Schlueter
+Iskren Ivov Chernev
+Ivan Torres
+J. Lee Coltrane
+Jacek Becela
+Jackson Tian
+Jacob Gable
+Jacob Groundwater
+Jacob H.C. Kragh
+Jacob Hoffman-Andrews
+Jake Verbaten
+Jakob Gillich
+Jakob Kummerow
+Jakub Lekstan
+James Campos
+James Duncan
+James Ferguson
+James Halliday
+James Hartig
+James Herdman
+James Hight
+James Koval
+James M Snell
+James Pickard
+Jan Kassens
+Jan Krems
+Jan Lehnardt
+Jan Wynholds
+Jann Horn
+Jason Gerfen
+Javier Hernández
+Jay Beavers
+Jeff Barczewski
+Jeff Smick
+Jeff Switzer
+JeongHoon Byun
+Jered Schmidt
+Jeremy Ashkenas
+Jeremy Martin
+Jeremy Selier
+Jeroen Janssen
+Jerome Etienne
+Jesús Leganés Combarro "piranna
+Jicheng Li
+Jim Schubert
+Jimb Esser
+Jo Liss
+Jochen Eisinger
+Joe Andaverde
+Joe Shaw
+Joe Walnes
+Joel Brandt
+Johan Bergström
+Johan Dahlberg
+Johan Euphrosine
+Johan Sørensen
+Johannes Ewald
+Johannes Wüller
+John Albietz
+Johnny Ray
+Jon Crosby
+Jonas Pfenniger
+Jonas Westerlund
+Jonathan Johnson
+Jonathan Knezek
+Jonathan Reem
+Jonathan Rentzsch
+Jordan Sissel
+Jorge Chamorro Bieling
+Joseph Pecoraro
+Josh Dague
+Josh Erickson
+Joshaven Potter
+Joshua Holbrook
+Joshua Peek
+Joshua S. Weinstein
+Ju-yeong Park
+Juanjo
+Julian Gruber
+Julian Lamb
+Julien Fontanet
+Julien Gilli
+Jun Ma
+Justin Plock
+Jérémy Lal
+Jörn Horstmann
+Kai Chen
+Kai Groner
+Kai Sasaki Lewuathe
+Kang-Hao Kenny
+Karl Guertin
+Karl Skomski
+Kazuyuki Yamada
+Keith M Wesolowski
+Kelly Gerber
+Kenan Sulayman
+Kevin Bowman
+Kevin Decker
+Kevin Gadd
+Kevin Locke
+Kevin Millikin
+Kevin Simper
+Kevin van Zonneveld
+Kip Gebhardt
+Kiyoshi Nomo
+Koichi Kobayashi
+Konstantin Käfer
+Kris Kowal
+Krishna Rajendran
+Krzysztof Chrapka
+Kyle Robinson Young
+Lalit Kapoor
+Lars-Magnus Skog
+Lasse R.H. Nielsen
+Lev Gimelfarb
+Linus Mårtensson
+Linus Unnebäck
+Logan Smyth
+Lorenz Leutgeb
+Lucio M. Tato
+Luis Reis
+Luke Arduini
+Luke Bayes
+Luke Gallagher
+MK Safi
+Maciej Małecki
+Majid Arif Siddiqui
+Malte-Thorben Bruns
+Manav Rathi
+Marc Harter
+Marcel Laverdet
+Marcin Kostrzewa
+Marco Rogers
+Mariano Iglesias
+Mark Cavage
+Mark Hansen
+Mark Nottingham
+Mark Stosberg
+Marshall Culpepper
+Mathias Buus
+Mathias Bynens
+Mathias Pettersson
+Mathias Schreck
+Matt Brubeck
+Matt Ezell
+Matt Gollob
+Matt Ranney
+Matt Robenolt
+Matthew Aynalem
+Matthew Fitzsimmons
+Matthias Bartelmeß
+Maurice Butler
+Max Ogden
+Maxim Bogushevich
+Maxime Quandalle
+Maxwell Krohn
+Michael Axiak
+Michael Bernstein
+Michael Carter
+Michael Hart
+Michael Jackson
+Michael Kebe
+Michael Ridgway
+Michael Starzinger
+Michael Stillwell
+Michael Thomas
+Michael Wilber
+Michaeljohn Clement
+Micheil Smith
+Mickael van der Beek
+Mickaël Delahaye
+Mihai Călin Bazon
+Mikael Bourges-Sevenier
+Mike Harsch
+Mike Morearty
+Mike Pennisi
+Mikeal Rogers
+Ming Liu
+Miroslav Bajtos
+Miroslav Bajtoš
+Mitar
+Mustansir Golawala
+Myles Byrne
+Nao Iizuka
+Nathan Friedly
+Nathan Rajlich
+Nathan Woltman
+Nathan Zadoks
+Nebu Pookins
+Nicholas Kinsey
+Nicholas Vavilov
+Nick Apperson
+Nick Campbell
+Nick Desaulniers
+Nick Muerdter
+Nick Simmons
+Nick Stenning
+Nick Sullivan
+Niclas Hoyer
+Nicolas Chambrier
+Nicolas Kaiser
+Nicolas LaCasse
+Nicolas Talle
+Nikhil Marathe
+Niklas Fiekas
+Nirk Niggler
+Nuno Job
+Oguz Bastemur
+Oleg Efimov
+Oleg Slobodskoi
+Olivier Lalonde
+Olof Johansson
+Onne Gorter
+Orlando Vazquez
+Paddy Byers
+Paolo Fragomeni
+Patrick Mooney
+Patrik Stutz
+Paul Loyd
+Paul Querna
+Paul Serby
+Paul Vorbach
+Paulo Matias
+Pavel Lang
+Pedro Ballesteros
+Pedro Teixeira
+Peter Bright
+Peter Dekkers
+Peter Griess
+Peter Lyons
+Peter Rust
+Peter Rybin
+Peteris Krumins
+Phil Sung
+Philip Tellis
+Philipp Hagemeister
+Phillip Alexander
+Pierre-Alexandre St-Jean
+Pooya Karimian
+Rafael Garcia
+Rafael Henrique Moreira
+Raffaele Sena
+Rasmus Andersson
+Rasmus Christian Pedersen
+Ray Morgan
+Ray Solomon
+Raymond Feng
+Refael Ackermann
+Reid Burke
+Rhys Jones
+Richard Rodger
+Rick Olson
+Rick Yakubowski
+Ricky Ng-Adam
+Rob Ellis
+Robert Keizer
+Robert Kowalski
+Robert Mustacchi
+Robin Lee
+Rod Vagg
+Rohini Harendra
+Roly Fentanes
+Roman Klauke
+Roman Shtylman
+Ron Korving
+Rory Bradford
+Ruben Rodriguez
+Russ Bradberry
+Russell Haering
+Ryan Cole
+Ryan Dahl
+Ryan Doenges
+Ryan Emery
+Ryan Graham
+Ryan McGrath
+Ryan Petrello
+Ryuichi Okumura
+Ryunosuke SATO
+Sadique Ali
+Sam Hughes
+Sam Roberts
+Sam Shull
+Sam Stephenson
+Sambasiva Suda
+Sami Samhuri
+San-Tai Hsu
+Saúl Ibarra Corretgé
+Scott Anderson
+Scott Blomquist
+Scott González
+Scott McWhirter
+Scott Taylor
+Sean Braithwaite
+Sean Coates
+Sean Cunningham
+Sean McArthur
+Sean Silva
+Seong-Rak Choi
+Sergey Kholodilov
+Sergey Kryzhanovsky
+Seth Fitzsimmons
+Shannen Saez
+Shea Levy
+Shigeki Ohtsu
+Shuan Wang
+Shuhei Kagawa
+Siddharth Mahendraker
+Silas Sewell
+Simen Brekken
+Simon Cornelius P. Umacob
+Simon Sturmer
+Simon Willison
+Stanislav Ochotnicky
+Stanislav Opichal
+Stefan Bühler
+Stefan Rusu
+Stephen Gallagher
+Steve Engledow
+Steve Mao
+Steve Sharp
+Steven Kabbes
+Steven Loomis
+Steven R. Loomis
+Stiliyan Lazarov
+Stéphan Kochen
+Sugendran Ganess
+Suwon Chae
+Sven Panne
+Swaagie
+T.C. Hollingsworth
+TJ Holowaychuk
+Tadashi SAWADA
+Takahiro ANDO
+Taojie
+Ted Young
+Theo Schlossnagle
+Thom Seddon
+Thomas Lee
+Thomas Parslow
+Thomas Shinnick
+Thorsten Lorenz
+Tim Baumann
+Tim Bradshaw
+Tim Caswell
+Tim Cooijmans
+Tim Kuijsten
+Tim Macfarlane
+Tim Oxley
+Tim Price
+Tim Smart
+Tim Wood
+Timothy J Fontaine
+Tobias Müllerleile
+Tobie Langel
+Tom Gallacher
+Tom Hughes-Croucher
+Tomasz Buchert
+Tomasz Janczuk
+Tony Huang
+Tony Metzidis
+Toon Verwaest
+Toshihiro Nakamura
+Travis Swicegood
+Trent Mick
+Trevor Burnham
+Trevor Livingston
+Trevor Norris
+Tristan Berger
+Tuğrul Topuz
+Tyler Larson
+Tyler Neylon
+Urban Hafner
+Veres Lajos
+Vicente Jimenez Aguilar
+Victor Costan
+Victor Widell
+Vincent Ollivier
+Vincent Voyer
+Vitali Lovich
+Vitor Balocco
+Vladimir Beloborodov
+Vladimir Kurchatkin
+Vsevolod Strukchinsky
+Vyacheslav Egorov
+Wade Simmons
+Wang Xinyong
+Willi Eggeling
+William Bert
+Wojciech Wnętrzak
+Wyatt Preul
+Xavi Magrinyà
+Xavier Shay
+Xidorn Quan
+Yang Guo
+Yazhong Liu
+Yiyu He
+Yoji SHIDARA
+Yorkie
+Yosef Dinerstein
+Yoshihiro KIKUCHI
+Yuan Chuan
+Yuichiro MASUI
+Yuki KAN
+Yunsong Guo
+Yuriy Nemtsov
+Zachary Scott
+Zarko Stankovic
+Zoran Tomicic
+ayanamist
+fengmk2
+haoxin
+pflannery
+pkcs
+silverwind
+sudodoki
+Łukasz Walukiewicz
diff --git a/tools/common.js b/tools/common.js
new file mode 100644
index 0000000000..c4fccfef9b
--- /dev/null
+++ b/tools/common.js
@@ -0,0 +1,149 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+var assert = require('assert');
+
+/*
+ * stableSort sorts the array "array" using the predicate "compare" in a
+ * stable way.
+ * It returns a new object that represents the sorted array.
+ */
+function stableSort(array, compare) {
+ assert(Array.isArray(array), 'array must be an array');
+
+ if (!compare) {
+ compare = defaultCompare;
+ }
+ assert(typeof compare === 'function', 'compare must be a function');
+
+ var indexedArray = array.map(function addIndex(item, index) {
+ return { v: item, i: index };
+ });
+
+ function defaultCompare(a, b) {
+ if (a < b) return -1;
+ if (a > b) return 1;
+ return 0;
+ }
+
+ indexedArray.sort(function stableCompare(a, b) {
+ var r = compare(a.v, b.v);
+ if (r === 0) {
+ return a.i - b.i;
+ } else {
+ return r;
+ }
+ });
+
+ return indexedArray.map(function removeIndex(item) {
+ return item.v;
+ });
+}
+
+exports.stableSort = stableSort;
+
+if (module === require.main) {
+ /*
+ * The following code is a tests suite that makes sure that:
+ * 1) The default sort implementation of the Node.js JavaScript runtime (V8)
+ * is not stable.
+ * 2) The "stableSort" function above provides a stable sort.
+ */
+ function standardSort(array, compare) {
+ var dupArray = array.splice(0);
+ dupArray.sort(compare);
+ return dupArray;
+ }
+
+ function testSortStability(count, bins, sortFunc) {
+ var unstable = false;
+
+ for (var iter = 0; iter < 10; ++iter) {
+ var array = [];
+
+ for (var i = 0; i < count; ++i)
+ array.push({ u: Math.floor(Math.random() * bins), i: i });
+
+ array = sortFunc(array, function(a, b) { return a.u - b.u });
+ var u = -1, i = -1;
+ for (var ii = 0; ii < count; ++ii) {
+ var v = array[ii];
+ if (v.u > u) {
+ u = v.u; i = -1;
+ } else if (v.i > i) {
+ i = v.i;
+ } else {
+ return false;
+ }
+ }
+ }
+
+ return true;
+ }
+
+ var stableSortMsg = "Stable sort should be stable for all arrays";
+ var standardSmallArrayMsg = "Standard sort should be stable for small arrays";
+ var standardUnstableMsg = "Standard sort should NOT be stable for non-small arrays";
+
+ var stableSorts = [
+ { count: 5, bins: 2, sort: standardSort, msg: standardSmallArrayMsg },
+ { count: 10, bins: 3, sort: standardSort, msg: standardSmallArrayMsg },
+ { count: 5, bins: 2, sort: stableSort, msg: stableSortMsg },
+ { count: 10, bins: 3, sort: stableSort, msg: stableSortMsg },
+ { count: 11, bins: 3, sort: stableSort, msg: stableSortMsg },
+ { count: 12, bins: 3, sort: stableSort, msg: stableSortMsg },
+ { count: 13, bins: 3, sort: stableSort, msg: stableSortMsg },
+ { count: 14, bins: 3, sort: stableSort, msg: stableSortMsg },
+ { count: 15, bins: 3, sort: stableSort, msg: stableSortMsg },
+ { count: 20, bins: 3, sort: stableSort, msg: stableSortMsg },
+ { count: 50, bins: 3, sort: stableSort, msg: stableSortMsg },
+ { count: 100, bins: 4, sort: stableSort, msg: stableSortMsg },
+ { count: 1000, bins: 4, sort: stableSort, msg: stableSortMsg },
+ { count: 10000, bins: 4, sort: stableSort, msg: stableSortMsg },
+ ];
+
+ var unstableSorts = [
+ { count: 11, bins: 3, sort: standardSort, msg: standardUnstableMsg },
+ { count: 12, bins: 3, sort: standardSort, msg: standardUnstableMsg },
+ { count: 13, bins: 3, sort: standardSort, msg: standardUnstableMsg },
+ { count: 14, bins: 3, sort: standardSort, msg: standardUnstableMsg },
+ { count: 15, bins: 3, sort: standardSort, msg: standardUnstableMsg },
+ { count: 20, bins: 3, sort: standardSort, msg: standardUnstableMsg },
+ { count: 50, bins: 4, sort: standardSort, msg: standardUnstableMsg },
+ { count: 100, bins: 4, sort: standardSort, msg: standardUnstableMsg },
+ { count: 1000, bins: 4, sort: standardSort, msg: standardUnstableMsg },
+ { count: 10000, bins: 4, sort: standardSort, msg: standardUnstableMsg },
+ ];
+
+
+ function runTests(tests, stability) {
+ tests.forEach(function(test) {
+ console.log('Running test with sort: %s, count: %s, bins: %s',
+ test.sort.name, test.count, test.bins);
+ assert.equal(testSortStability(test.count, test.bins, test.sort),
+ stability,
+ test.msg);
+ });
+ }
+
+ runTests(stableSorts, true);
+ runTests(unstableSorts, false);
+}
diff --git a/tools/update-authors.js b/tools/update-authors.js
new file mode 100644
index 0000000000..f2cd38352e
--- /dev/null
+++ b/tools/update-authors.js
@@ -0,0 +1,144 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+/*
+ * This script updates the AUTHORS so that it contains a list of contributors'
+ * names ordered alphabetically. The sorting algorithm used is stable, see
+ * function "stableSort" in tools/common.js.
+ */
+
+'use strict';
+
+var child_process = require('child_process');
+var fs = require('fs');
+var assert = require('assert');
+var util = require('util');
+var path = require('path');
+var os = require('os');
+
+var debug = util.debuglog('update-authors');
+
+var commonTools = require(path.join(__dirname, './common.js'));
+
+// Use '%aN <%aE>' and not '%an <%ae>' as we want to have git log use the
+// .mailmap file.
+var GIT_LOG_COMMAND_ARGS = ['log', "--format='%aN <%aE>'"];
+var MAILMAP_FILE = '.mailmap';
+
+var OPTS = processCmdLineArgs();
+var AUTHORS_FILE = OPTS.authorsFile || 'AUTHORS';
+
+var PLATFORM_AGNOSTIC_EOL = /\r|\n|\r\n/;
+
+var authorsMap = {};
+
+function usage() {
+ console.log('Usage: [NODE_DEBUG=update-authors] ./node update-authors.js ' +
+ ' [-a AUTHORS-FILE]');
+ process.exit(1);
+}
+
+function processCmdLineArgs() {
+ var cmdLineOpts = {};
+
+ var cmdLineArgs = process.argv.splice(2);
+ for (var i = 0; i < cmdLineArgs.length; ++i) {
+ if (cmdLineArgs[i] === '-a') {
+ if (!cmdLineArgs[++i]) {
+ usage();
+ } else {
+ cmdLineOpts.authorsFile = cmdLineArgs[i];
+ }
+ } else {
+ usage();
+ }
+ }
+
+ return cmdLineOpts;
+}
+
+function generateAuthorsFile(authorsFilePath, cb) {
+ assert(typeof authorsFilePath === 'string',
+ 'authorsFilePath must be a string');
+
+ var sortedAuthorsNames = commonTools.stableSort(Object.keys(authorsMap));
+ var authorsFileContent = sortedAuthorsNames.join('\n') + '\n';
+ fs.writeFile(authorsFilePath, authorsFileContent, cb);
+}
+
+var latestAuthorsLineChunk = '';
+function addAuthors(authors) {
+ assert(typeof authors === 'string', 'authors must be a string');
+
+ var authors = (latestAuthorsLineChunk + authors).split(PLATFORM_AGNOSTIC_EOL);
+ latestAuthorsLineChunk = '';
+ authors.forEach(function eachAuthor(author) {
+ if (author && author.length > 0) {
+ var matches = author.match(/^'([^<>]*)\s+<.*>'$/);
+
+ if (matches) {
+ var authorName = matches[1];
+ debug('MATCHING: ' + authorName);
+ authorsMap[authorName] = 1;
+ } else {
+ debug('NOT MATCHING: ' + author);
+ latestAuthorsLineChunk = author;
+ }
+ }
+ });
+}
+
+function loadAuthorsFromGitLog(cb) {
+ var gitLog = child_process.spawn('git', GIT_LOG_COMMAND_ARGS);
+
+ gitLog.on('close', function onGitLogClose(exitCode, signal) {
+ if (exitCode === 0 && signal === null) {
+
+ debug('NB AUTHORS:' + Object.keys(authorsMap).length);
+
+ generateAuthorsFile(AUTHORS_FILE, function onAuthorsFileGenerated(err) {
+ if (err) {
+ return cb(new Error('Error when generating authors file:', err));
+ } else {
+ console.log('Authors file generated successfully!');
+ }
+ });
+ }
+ });
+
+ gitLog.on('error', function onGitLogError(err) {
+ var errorMsg = util.format('Error when executing command %s: %s',
+ GIT_LOG_COMMAND, err);
+ return cb(new Error(errorMsg));
+ });
+
+ gitLog.stdout.on('data', function onGitLogData(data) {
+ addAuthors(data.toString());
+ });
+}
+
+loadAuthorsFromGitLog(function done(err) {
+ if (err) {
+ console.error('Error when updating authors file:', err);
+ } else {
+ console.log('Updated authors file successfully!');
+ }
+});
diff --git a/tools/updateAuthors.awk b/tools/updateAuthors.awk
deleted file mode 100644
index 4ede6ffcea..0000000000
--- a/tools/updateAuthors.awk
+++ /dev/null
@@ -1,13 +0,0 @@
-# git log --pretty='format:%ae %an' | tac | awk -f tools/updateAuthors.awk
-{
- if (!x[$1]++) {
- #print $0
- n = split($0, a, " ");
- s = a[2];
- for (i = 3; i <= n ; i++) {
- s = s " " a[i];
- }
- print s " <" $1 ">";
- }
-}
-