
                                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
* Torsten Schlabach
* J. Wolfgang Kaltz
* 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
