.. _how_can_i_help:

***************
How can I help?
***************

.. contents::
   :local:

Thanks for being interested in helping the Ansible project!

There are many ways to help the Ansible project...but first, please read and understand the :ref:`code_of_conduct`.

Become a power user
===================

A great way to help the Ansible project is to become a power user:

* Use Ansible everywhere you can
* Take tutorials and classes
* Read the :ref:`official documentation <ansible_documentation>`
* Study some of the `many excellent books <https://www.amazon.com/s/ref=nb_sb_ss_c_2_7?url=search-alias%3Dstripbooks&field-keywords=ansible&sprefix=ansible%2Caps%2C260>`_ about Ansible
* `Get certified <https://www.ansible.com/products/training-certification>`_.

When you become a power user, your ability and opportunities to help the Ansible project in other ways will multiply quickly.

Ask and answer questions online
===============================

There are many online platforms where Ansible users and contributors ask and answer questions including the :ref:`ansible_forum`.
Reach out and communicate with your fellow Ansible enthusiasts.

You can find the official :ref:`Ansible communication channels <communication>`.

Review, fix, and maintain the documentation
===========================================

Typos are everywhere, even in the Ansible documentation. We work hard to keep the documentation up-to-date, but you may also find outdated examples. We offer easy ways to :ref:`report and/or fix documentation errors <community_documentation_contributions>`.

.. _ansible_community_meetup:

Participate in your local meetup
================================

There are Ansible meetups `all over the world <https://www.meetup.com/topics/ansible/>`_. Join your local meetup. Attend regularly. Ask good questions. Volunteer to give a presentation about how you use Ansible.

If there is no meetup near you, we are happy to help you `start one <https://www.ansible.com/community/events/ansible-meetups>`_.

File and verify issues
======================

All software has bugs, and Ansible is no exception. When you find a bug, you can help tremendously by telling us about it:

* Filing :ref:`issues for ansible-core <reporting_bugs_and_features>`.
* Filing :ref:`issues for collections <reporting_bugs_in_collections>`.


If the bug you found already exists in an issue, you can help by verifying the behavior of the reported bug with a comment in that issue, or by reporting any additional information.

Review and submit pull requests
===============================

As you become more familiar with how Ansible works, you may be able to fix issues or develop new features yourself. If you think you have a fix for a bug in Ansible, or if you have a new feature that you would like to share with millions of Ansible users, read all about the :ref:`development process <community_development_process>` to learn how to get your code accepted into Ansible.

You can also get started with solving GitHub issues labeled with the ``easyfix`` and ``good_first_issue`` labels for:

- `Ansible collections <https://github.com/search?q=user%3Aansible-collections+label%3Aeasyfix%2C%22good+first+issue%22+state%3Aopen&type=Issues>`_
- `All other Ansible projects <https://github.com/search?q=user%3Aansible+user%3Aansible-community+label%3Aeasyfix%2C%22good+first+issue%22+state%3Aopen&type=Issues>`_

When you choose an issue to work on, add a comment directly on the GitHub issue to say you are looking at it and let others know to avoid conflicting work. 
You can also ask for help in a comment if you need it.

For collections, refer to the :ref:`collection_quickstart` page to learn how to quickly set up your local environment, test your changes, and submit a ready-for-review pull request.

Another good way to help is to review pull requests that other Ansible users have submitted. Ansible Core keeps a full list of `open pull requests by file <https://ansible.sivel.net/pr/byfile.html>`_, so if a particular module or plugin interests you, you can easily keep track of all the relevant new pull requests and provide testing or feedback. Alternatively, you can review the pull requests for any collections that interest you. Click :guilabel:`Issue tracker` on the collection documentation page to find the issues and PRs for that collection.

Become a collection maintainer
==============================

Once you have learned about the development process and have contributed code to a collection, we encourage you to become a maintainer of that collection. There are hundreds of modules in dozens of Ansible collections, and the vast majority of them are written and maintained entirely by members of the Ansible community.

 See :ref:`collection maintainer guidelines <maintainers>` to learn more about the responsibilities of being an Ansible collection maintainer.

.. _community_working_groups:

Join a working group
====================

Working groups are a way for Ansible community members to self-organize around particular topics of interest. We have working groups around various topics. To join or create a working group, please read the :ref:`Ansible Working Groups<working_group_list>`.


Teach Ansible to others
=======================

We are working on a standardized `Ansible workshop <https://ansible.github.io/workshops/>`_ that can provide a good hands-on introduction to Ansible usage and concepts.

Social media
============

If you like Ansible and just want to spread the good word, feel free to share on your social media platform of choice, and let us know by using ``@ansible`` or ``#ansible``. We'll be looking for you.
