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

= Apache Tamaya: Community

//:sectnums:

// Document properties
:twitterhandle: tamayaconf

== Users

If you are a new user and you would like to participate in Tamaya
(would be great!), you can have a look at the current
project documentation. Apache Tamaya currently does
not yet have a users mailing list. If you want discuss your use cases
we encourage you to mailto:dev-subscribe@tamaya.incubator.apache.org[subscribe]
to our mailto:dev@tamaya.incubator.apache.org[mailing list for developers].
Furthermore, you can check our pass:[<a href="https://lists.apache.org/list.html?dev@tamaya.apache.org">mail-archives</a>].

Before you file a ticket in our https://issues.apache.org/jira/browse/TAMAYA[Jira^]
please ask on the mailing list if it's a known issue in case of a
bug or if there is an ongoing discussion in case of a feature.

You are very welcome to follow our twitter account
https://twitter.com/{twitterhandle}[@{twitterhandle}^] and spread the word
of Tamaya with tweets, blog entries,...

== Getting Involved

Everybody is welcome to get involved with our community. You can find general
information at https://apache.org/foundation/getinvolved.html and
https://apache.org/foundation/how-it-works.html.
The following sections provides some details about the different levels of getting involved.

If you want to contribute to the
documentation of Apache Tamaya, please
read the instructions about the Documentation
that addresses how to contribute, render and publish it.


=== Contributors

Before you get a committer you have to contribute to our effort.
E.g. you can help users, participate in discussions on the dev list,
submit patches,... . Therefore, it's essential to file
a https://www.apache.org/licenses/icla.txt[Individual Contributor License Agreement (ICLA)^]
or https://www.apache.org/licenses/cla-corporate.txt[Software Grant and Corporate Contributor License Agreement (CCLA)^]
and send it to secretary at apache dot org (or fax it) as early as possible.

If you would like to submit a patch through Jira, you can have a look at the
link:../devguide.html[suggested Git approach].

The lists of current contributors and committers can be found
on the link:team.html[team and contributers page^].


=== Committers

Before you read this section, please ensure that you have read
the contributor section. All of you are welcome to join our development effort.
mailto:dev-subscribe@tamaya.incubator.apache.org[Subscribe] to our
mailto:dev@tamaya.incubator.apache.org[mailing list for developers] and
start contributing and help users.

Optionally mailto:commits-subscribe@tamaya.incubator.apache.org[subscribe] to our
mailto:commits@tamaya.incubator.apache.org[mailing list for commits].
Furthermore, you can check our pass:[<a href="https://lists.apache.org/list.html?dev@tamaya.apache.org">mail-archives</a>].

Further details are available at https://www.apache.org/dev/[https://www.apache.org/dev/^].

=== JIRA

Any kind of issue has to be filed in our
https://issues.apache.org/jira/browse/TAMAYA[issue tracker^].
If you have any question, you can ask us
(e.g. via the mailing list for developers).

=== Spread the word

You are very welcome e.g. to write blog entries, mention our twitter handle
 @{twitterhandle} if you tweet about the project or just follow our twitter
account https://twitter.com/{twitterhandle}[@{twitterhandle}^]

=== IRC

Usually discussions happen on the mailing list. Some informal discussions take
place in our IRC-Channel irc://irc.freenode.net/apache-tamaya.

----
// with the irssi command-line client:
$ irssi

> /connect irc.freenode.net
> /join #apache-tamaya
----
