:jbake-type: page
:jbake-status: published

= Apache Tamaya: Project Mailinglists

Following the Apache Way everything happens on our mailing lists. You may subscribe to all public lists.
The table below lists all mailings used by the Tamaya project.

[width="70"]
[cols="4*.<", options="header"]
|===
| List
| Subscribe
| Unsubscribe
| Archive
//-- next row
| Developer List
| mailto:dev-subscribe@tamaya.incubator.apache.org[Subscribe]
| mailto:dev-unsubscribe@tamaya.incubator.apache.org[Unsubscribe]
| http://mail-archives.apache.org/mod_mbox/incubator-tamaya-dev/[Archive^]
//-- next row
| Committer List
| mailto:commits-subscribe@tamaya.incubator.apache.org[Subscribe]
| mailto:commits-unsubscribe@tamaya.incubator.apache.org[Unsubscribe]
| http://mail-archives.apache.org/mod_mbox/incubator-tamaya-commits/[Archive^]
|===

= Apache Tamaya: Project Team

A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.

The project team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.

== Members

The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.

.Members
[width="60%",frame="topbot",options="header"]
|======================
|Id         |Name               |E-Mail                   |Role(s)    |Time Zone
|anatole    |Anatole Tresch     |anatole[at]apache.org    |PMC        |+1
|johndament |John D. Ament      |johndament[at]apache.org |PMC        |-5
|plexus     |Oliver B. Fischer  |plexus[at]apache.org     |PMC        |+1
|pottlinger |Phil Ottlinger     |pottlinger[at]apache.org |PMC        |+1
|wkeil      |Werner Keil        |wkeil[at]apache.org      |PMC        |+1
|======================

== Contributors

The following people are active contributors:

.Contributors
[width="60%",frame="topbot",options="header"]
|======================
|Id         |Name              |E-Mail                    |Role(s)     |Time Zone
|acoburn    |Aaron Coburn      |acoburn[at]apache.org     |Contributor |-5
|wlieurance |William Lieurance |wlieurance[at]apache.org  |Contributor |-6
|======================

== Emeritus

These people used to help with the development of the project but are not active anymore:

.Members (alphabetically ordered)
[width="60%",frame="topbot",options="header"]
|======================
|Id           |Name               |E-Mail                     |Role(s)    |Time Zone
|gpetracek    |Gerhard Petracek   |gpetracek[at]apache.org    | PMC       | +1
|struberg     |Mark Struberg      |struberg[at]apache.org     | PMC       | +1
|rmannibucau  |Romain Manni-Bucau |rmannibucau[at]apache.org  | PMC       | +1
|======================

Thanks for all your help!
