
                                C R E D I T S
                                 
This is the file where major donations to the Lenya project are listed and it
should be used to give appropriate visibility to those inviduals, organizations
or companies that donated resources to the effort. This file wants to be one of
the ways the Lenya community pays back.


 Community Credits
 =================
                                   
 Active Committers:
 ------------------

* Doug Chestnut
* Edith Chevrier
* Dale Christ
* Christian Egli
* Jann Forrer
* Antonio Gallardo
* Andreas Hartmann   Andreas runs the cocooncenter.org site.
* Andreas Kuckartz   Tester, Bugzilla reporter
* Rolf Kulemann
* Gregor J. Rothfuss 
* Thorsten Scherler
* Michael Wechner   

 Inactive Committers:
 --------------------

* Juergen Bigalke      wrote some creators.
* Memo Birgi
* Marc Liyanage       wrote the first Lenya build system way back.
* Felix Maeder
* Rene Niedermowe
* Giacomo Pati        helped to port the predecessor of Lenya to Cocoon.

 Other Contributors:
 -------------------

* Lon Boonen           Lon is the original creator of Xopus and helped a 
                       lot to integrate it into Lenya. Recently he 
                       rewrote the JavaScript of the Lenya menubar.
* Jose Chaso           Spanish translation.
* Paul Ercolino (solprovider)  Refactored search, various small fixes
* Stephen England      Design of the Lenya logo, design of the Lenya UI.
* Jorge Gutierrez      Spanish translation.
* Martin Hitz
* Margrit John
* Olivier Lange        French translation.
* Jean Pierre LeJacq   Build system improvements.
* Martin Lüthi         Mail class.
* Christian Stocker    Christian is the original creator of the 
                       Bitflux Editor and helped a lot to integrate 
                       it into Lenya.
* Urs Stöckli
* Giampaolo Trapasso   Italian translation, entertainer on #lenya
* Markus Vaterlaus
* Kars Veiling
* Marc von Wattenwyl
* Thomas Werschlein


                                                  The Apache Lenya Community
                                                  http://lenya.apache.org
