.. Licensed to the Apache Software Foundation (ASF) under one
.. or more contributor license agreements.  See the NOTICE file
.. distributed with this work for additional information
.. regarding copyright ownership.  The ASF licenses this file
.. to you under the Apache License, Version 2.0 (the
.. "License"); you may not use this file except in compliance
.. with the License.  You may obtain a copy of the License at

..   http://www.apache.org/licenses/LICENSE-2.0

.. Unless required by applicable law or agreed to in writing,
.. software distributed under the License is distributed on an
.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
.. KIND, either express or implied.  See the License for the
.. specific language governing permissions and limitations
.. under the License.


.. SCOPE OF THIS SECTION
.. Present Arrow developers to the general public to make
.. the barrier of contributing lower as new contributors will
.. have a feeling of joint work and possible help. Add ways
.. of communication and add description of what is expected.
.. Also add a link to other resources.


.. _communication:

*************
Communication
*************

**About the contributors**

The group of contributors is full of experts, software engineers and core
developers but also full of users, learners and enthusiasts that love doing
what we do and we want to spread this enthusiasm to you also.

We all have silly questions and we all need help lots of times.
We encourage you to be open to communication and we will help as much as
we can.

Due to the scale of the project which includes many languages, everybody
contributing will be faced with new things needed to be learned. Even the most
seasoned C++ developer will need to ask basic questions about R for example.

When communicating, it's important you mark your communication with appropriate
tags ([C++], [R], [Ruby] etc.) so it gets noticed by the right people.

Where to get help 👋
====================

For any question you may have or problems you are facing you can write to
user or development :ref:`mailing_list`,
`GitHub Discussions <https://github.com/apache/arrow/discussions>`_ or you can
create an issue on :ref:`github`. Also use GitHub to search through the issues,
report bugs and create feature requests or proposals.

.. _github:

GitHub
~~~~~~

Different options of communicating are provided through GitHub where the project
is hosted. What we use are `GitHub Issues <https://github.com/apache/arrow/issues>`_,
`Discussions <https://github.com/apache/arrow/discussions>`_ and
`Pull Requests <https://github.com/apache/arrow/pulls>`_.

You can use GitHub issues to:

- **ask questions**,
- **report a bug**,

  .. seealso::

    :ref:`How to make good bug reports and feature requests <bug-reports>`

- **propose a new feature**,
- **propose a bigger change in the documentation**,
- report **a problem with building** one of the Arrow libraries and discuss
  the possible solution (or write on GitHub Discussions or to the user mailing
  list).

  Making an issue about things you are not sure about may feel intimidating,
  but it is also useful for others and the project.

  .. note::
     Make sure to add which operating system and Arrow version you are using
     in the issue description plus the debug information/error.

If you have **a new contribution already written**, you can create a Pull
Request after creating a GitHub issue and mentioning the way you plan to
implement it. It is important to have one of the Arrow developers agree with
your basic proposal for fixing it. Better to ask before you spend too much of
your time on something that we might think is not a good idea.

If you want to **solve an issue that is already in GitHub**, you should
connect with other contributors in the issue comments.

.. _mailing_list:

Mailing Lists
~~~~~~~~~~~~~

You can subscribe to the **user** or **development** mailing list and browse for
previous topics or ask questions. Whereas discussion on GitHub only notifies people
who are mentioned or are collaborating on a Pull Request, the mailing list allows
you to broadcast to all users or developers. Use these when you want to get feedback
or answers from a wider audience.

.. note::
  `GitHub Discussions <https://github.com/apache/arrow/discussions>`_ has all posts
  mirrored to the <user@arrow.apache.org> mailing list. **Users are welcome to ask
  usage questions in either location.**

There is also a **biweekly developers sync call** that anyone is welcome to join.
It is announced on the development mailing list together with the link to join.

.. seealso::
  More information and links for subscribing to the mailing lists `can be found here <https://arrow.apache.org/community/>`_.

Recommended learning resources
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To find articles on concepts important to Arrow as well as recommended books for
learning languages visit :ref:`other-resources`.
