Apache CouchDB THANKS
=====================

A number of people have contributed to Apache CouchDB by reporting problems,
suggesting improvements or submitting changes. Some of these people are:

 * William Beh <willbeh@gmail.com>
 * Dirk Schalge <dirk@epd-me.net>
 * Roger Leigh <rleigh@debian.org>
 * Sam Ruby <rubys@intertwingly.net>
 * Carlos Valiente <superdupont@gmail.com>
 * Till Klampaeckel <till@klampaeckel.de>
 * Jim Lindley <web@jimlindley.com>
 * Yoan Blanc <yoan.blanc@gmail.com>
 * Michael Gottesman <gottesmm@reed.edu>
 * Mark Baran <mebaran@gmail.com>
 * Michael Hendricks <michael@ndrix.org>
 * Antony Blakey <antony.blakey@gmail.com>
 * Paul Carey <paul.p.carey@gmail.com>
 * Hunter Morris <huntermorris@gmail.com>
 * Brian Palmer <jira@brian.codekitchen.net>
 * Maximillian Dornseif <md@hudora.de>
 * Eric Casteleijn <eric.casteleijn@canonical.com>
 * Maarten Thibaut <mthibaut@cisco.com>
 * Florian Ebeling <florian.ebeling@gmail.com>
 * Volker Mische <volker.mische@gmail.com>
 * Brian Candler <B.Candler@pobox.com>
 * Brad Anderson <brad@sankatygroup.com>
 * Nick Gerakines <nick@gerakines.net>
 * Kevin Ilchmann Jørgensen <kijmail@gmail.com>
 * Dirkjan Ochtman <dirkjan@ochtman.nl>
 * Sebastian Cohnen <sebastian.cohnen@gmx.net>
 * Sven Helmberger <sven.helmberger@gmx.de>
 * Dan Walters <dan@danwalters.net>
 * Curt Arnold <carnold@apache.org>
 * Gustavo Niemeyer
 * Joshua Bronson <jabronson@gmail.com>
 * Kostis Sagonas <kostis@cs.ntua.gr>
 * Matthew Hooker <mwhooker@gmail.com>
 * Ilia Cheishvili <ilia.cheishvili@gmail.com>
 * Lena Herrmann <lena@zeromail.org>
 * Jack Moffit <metajack@gmail.com>
 * Damjan Georgievski <gdamjan@gmail.com>
 * Jan Kassens <jan@kassens.net>
 * James Marca <jmarca@translab.its.uci.edu>
 * Matt Goodall <matt.goodall@gmail.com>
 * Joel Clark <unsigned_char@yahoo.com>
 * Matt Lyon <matt@flowerpowered.com>
 * mikeal <mikeal.rogers@gmail.com>
 * Joscha Feth <joscha@feth.com>
 * Jarrod Roberson <jarrod@vertigrated.com>
 * Jae Kwon <jkwon.work@gmail.com>
 * Gavin Sherry <swm@alcove.com.au>
 * Timothy Smith <tim@couch.io>
 * Martin Haaß <MartinHaass@gmx.net>
 * Hans Ulrich Niedermann <hun@n-dimensional.de>
 * Dmitry Unkovsky <oil.crayons@gmail.com>
 * Zachary Zolton <zachary.zolton@gmail.com>
 * Brian Jenkins <bonkydog@bonkydog.com>
 * Paul Bonser <pib@paulbonser.com>
 * Caleb Land <caleb.land@gmail.com>
 * Juhani Ränkimies <juhani@juranki.com>
 * Kev Jackson <foamdino@gmail.com>
 * Jonathan D. Knezek <jdknezek@gmail.com>
 * David Rose <doppler@gmail.com>
 * Lim Yue Chuan <shasderias@gmail.com>
 * David Davis <xantus@xantus.org>
 * Klaus Trainer <klaus.trainer@web.de>
 * Juuso Väänänen <juuso@vaananen.org>
 * Jeff Zellner <jeff.zellner@gmail.com>
 * Benjamin Young <byoung@bigbluehat.com>
 * Gabriel Farrell <gsf747@gmail.com>
 * Mike Leddy <mike@loop.com.br>
 * Wayne Conrad <wayne@databill.com>
 * Thomas Vander Stichele <thomas@apestaart.org>
 * Felix Hummel <apache@felixhummel.de>
 * Tim Smith <tim@couchbase.com>
 * Dipesh Patel <dipthegeezer.opensource@googlemail.com>
 * Sam Bisbee <sam@sbisbee.com>
 * Nathan Vander Wilt <natevw@yahoo.com>
 * Caolan McMahon <caolan.mcmahon@googlemail.com>
 * Andrey Somov <trophybase@gmail.com>
 * Chris Coulson <chrisccoulson.googlemail.com>
 * Trond Norbye <trond.norbye@gmail.com>
 * Alexander Shorin <kxepal@gmail.com>
 * Christopher Bonhage <queezey@me.com>
 * Christian Carter <cdcarter@gmail.com>
 * Lukasz Mielicki <mielicki@gmail.com>
 * Omar Yasin <omarkj@gmail.com
 * Matt Cooley <matt@mattcooley.net>
 * Simon Leblanc <sim.leblanc+apache@gmail.com>
 * Rogutės Sparnuotos <rogutes@googlemail.com>
 * Gavin McDonald <gmcdonald@apache.org>
 * Fedor Indutny <fedor@indutny.com>
 * Tim Blair
 * Tady Walsh <hello@tady.me>
 * Joan Touzet <joant@ieee.org>
# Authors from commit 6c976bd and onwards are auto-inserted. If you are merging
# a commit from a non-committer, you should not add an entry to this file. When
# `bootstrap` is run, the actual THANKS file will be generated.
