# Ansible Community Guide

Welcome to the Ansible Community Guide!

The purpose of this guide is to teach you everything you need to know about being a contributing member of the Ansible community. All types of contributions are welcome, and necessary to Ansible’s continued success.

This page outlines the most common situations and questions that bring readers to this section. If you prefer a traditional table of contents, there’s one at the bottom of the page.

## Getting started

- I’m new to the community. Where can I find the Ansible Community Code of Conduct?
- I’d like to know what I’m agreeing to when I contribute to Ansible. Does Ansible have a Contributors License Agreement?
- I’d like to contribute but I’m not sure how. Are there easy ways to contribute?
- I want to talk to other Ansible users. How do I find an Ansible Meetup near me?
- I have a question. Which Ansible email lists and IRC channels will help me find answers?
- I want to learn more about Ansible. What can I do?
  - Read books.
  - Get certified.
  - Attend events.
  - Review getting started guides.
  - Watch videos - includes Ansible Automates, AnsibleFest & webinar recordings.
- I’d like updates about new Ansible versions. How are new releases announced?
- I want to use the current release. How do I know which releases are current?

## Going deeper

- I think Ansible is broken. How do I report a bug?
- I need functionality that Ansible doesn’t offer. How do I request a feature?
- I’m waiting for a particular feature. How do I see what’s planned for future Ansible Releases?
- I have a specific Ansible interest or expertise (for example, VMware, Linode, and so on.). How do I get involved in a working group?
- I’d like to participate in conversations about features and fixes. How do I review GitHub issues and pull requests?
- I found a typo or another problem on docs.ansible.com. How can I improve the documentation?

## Working with the Ansible repo

- I want to code my first changes to Ansible. How do I set up my Python development environment?
- I’d like to get more efficient as a developer. How can I find editors, linters, and other tools that will support my Ansible development efforts?
- I want my PR to meet Ansible’s guidelines. Where can I find guidance on coding in Ansible?
- I want to learn more about Ansible roadmaps, releases, and projects. How do I find information on the development cycle?
- I’d like to connect Ansible to a new API or other resource. How do I contribute a group of related modules?
- My pull request is marked `needs_rebase`. How do I rebase my PR?
- I’m using an older version of Ansible and want a bug fixed in my version that’s already been fixed on the `devel` branch. How do I backport a bugfix PR?
- I have an open pull request with a failing test. How do I learn about Ansible’s testing (CI) process?
- I’m ready to step up as a module maintainer. What are the guidelines for maintainers?
- A module I maintain is obsolete. How do I deprecate a module?

## Traditional Table of Contents

If you prefer to read the entire Community Guide, here’s a list of the pages in order:

- Community Code of Conduct
  - Anti-harassment policy
  - Policy violations
- How can I help?
  - Become a power user
  - Ask and answer questions online
  - Review, fix, and maintain the documentation
  - Participate in your local meetup
  - File and verify issues
  - Review and submit pull requests
  - Become a module maintainer
  - Join a working group
  - Teach Ansible to others
  - Social media
- Reporting Bugs And Requesting Features
  - Reporting a bug
  - Requesting a feature
- Contributing to the Ansible Documentation
  - Editing docs directly on GitHub
  - Reviewing open PRs and issues
  - Opening a new issue and/or PR
  - Before you open a complex documentation PR
  - Joining the documentation working group
- Communicating
  - Code of Conduct
  - Mailing list information
  - IRC channels
  - Ansible Tower support questions
- The Ansible Development Cycle
  - Macro development: roadmaps, releases, and projects
  - Micro development: the lifecycle of a PR
  - Making your PR merge-worthy
  - Backporting merged PRs
- Contributors License Agreement
- Triage Process
- Other Tools And Programs
  - Popular Editors
  - Development Tools
  - Tools for Validating Playbooks
  - Other Tools
- Ansible style guide
  - Linguistic guidelines
  - reStructuredText guidelines
  - More resources

Guidelines for specific types of contributors

- Committers Guidelines
- Module Maintainer Guidelines
- Release Manager Guidelines
- GitHub Admins