docs/docsite/rst/community/contributor_path.rst
Contributor path
This section describes the contributor's journey from the beginning to becoming a leader who helps shape the future of Ansible. You can use this path as a roadmap for your long-term participation.
Any contribution to the project, even a small one, is very welcome and valuable. Any contribution counts, whether it is feedback on an issue, a pull request, a topic or documentation change, or a coding contribution. When you contribute regularly, your proficiency and judgment in the related area increase and, along with this, the importance of your presence in the project.
.. contents:: :local:
First, determine areas that are interesting to you. Consider your current experience and what you'd like to gain. For example, if you use a specific collection, have a look there. See :ref:how_can_i_help for more ideas on how to help.
These are multiple community projects in the Ansible ecosystem you could contribute to:
Ansible Core <https://docs.ansible.com/ansible-core/devel/index.html>_Collections <collections_index>AWX <https://github.com/ansible/awx>_Galaxy <https://galaxy.ansible.com/>_ansible-lint <https://ansible-lint.readthedocs.io/en/latest/>_Molecule <https://ansible.readthedocs.io/projects/molecule/>_The required skillset depends on the area of interest and the project you'll be working on. Remember that the best way to learn is by doing.
Code development requires the most technical knowledge. Let's sort out what an Ansible developer should learn.
You should understand at least the basics of the following tools:
Python programming language <https://docs.python.org/3/tutorial/>_Git <https://git-scm.com/docs/gittutorial>_GitHub collaborative development model through forks and pull requests <https://docs.github.com/en/github/collaborating-with-pull-requests/getting-started/about-collaborative-development-models>_You can learn these tools more in-depth when working on your first contributions.
Each Ansible project has its own set of contributor guidelines. Familiarize yourself with these as you prepare your first contributions.
Ansible Core development <developer_guide>.Ansible collection development <developing_collections> and the collection-level contributor guidelines in the collection repository.You can find some ideas on how you can contribute in :ref:how_can_i_help.
If you are interested in contributing to collections, take a look at :ref:collection contributions<collections_contributions> and the collection repository <https://github.com/ansible-collections/>_'s README and CONTRIBUTING files. To make your first experience as smooth as possible, read the repository documentation carefully, then ask the repository maintainers for guidance if you have any questions.
Take a look at GitHub issues labeled with the easyfix and good_first_issue labels for:
Ansible collections repositories <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>_Issues labeled with the docs label in Ansible collections <https://github.com/search?q=user%3Aansible-collections+label%3Adocs+state%3Aopen+type%3Aissue&type=Issues>_ and other <https://github.com/search?q=user%3Aansible+user%3Aansible-community+label%3Adocs+state%3Aopen+type%3Aissue&type=Issues>_ Ansible projects can be also good to start with.
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.
We don't expect everybody to know everything. Start small, think big. When you contribute regularly, your proficiency and judgment in the related area will improve quickly and, along with this, the importance of your presence in the project.
See :ref:communication for ways to communicate and engage with the Ansible community, including working group meetings, accessing the Bullhorn news bulletin, and upcoming contributor summits.
Share your experience with other contributors through :ref:improving documentation<community_documentation_contributions>, answering questions from other contributors and users on :ref:Matrix/Libera.Chat IRC<communication>, giving advice on issues and pull requests, and discussing topics on the :ref:ansible_forum.
If you are a code contributor to a collection, you can get extended permissions in the repository and become a maintainer. A collection maintainer is a contributor trusted by the community who makes significant and regular contributions to the project and showed themselves as a specialist in the related area. See :ref:maintainers for details.
For some collections that use the collection bot <https://github.com/ansible-community/collection_bot>, such as community.general <https://github.com/ansible-collections/community.general> and community.network <https://github.com/ansible-collections/community.network>_, you can have different levels of access and permissions:
commit: allows contributors to merge pull requests to the development branch as well as perform all the other activities listed in the :ref:maintainers.For information about permission levels, see the GitHub official documentation <https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-permission-levels-for-an-organization>_.
.. note::
You do NOT have to be a programmer to become a steering committee member.
The :ref:Steering Committee <community_steering_committee> member status reflects the highest level of trust and allows contributors to lead the project by making important decisions for the Ansible project. The Committee members are community leaders who shape the project's future and the future of automation in the IT world in general.
To reach the status, as the current Committee members did before getting it, along with the things mentioned in this document, you should:
community topics<creating_community_topic>.Community meetings <https://github.com/ansible-community/meetings/blob/main/README.md#schedule>_. Note this is NOT a requirement.