Contributions are welcome and are greatly appreciated! Every little bit helps, and credit will always be given.
This index of linked documents aims to explain the subject of contributions if you have not contributed to any Open Source project, but it will also help people who have contributed to other projects learn about the rules of that community.
If you are a new contributor, please follow the Contributors Quick Start guide to get a gentle step-by-step introduction to setting up the development environment and making your first contribution.
If you are new to the project, you might need some help in understanding how the dynamics
of the community works and you might need to get some mentorship from other members of the
community - mostly Airflow committers (maintainers). Mentoring new members of the community is part of
maintainers job so do not be afraid of asking them to help you. You can do it
via comments in your PR, asking on a devlist or via Slack. For your convenience,
we have a dedicated #new-contributors
Slack channel where you can ask any questions
about making your first Pull Request (PR) contribution to the Airflow codebase - it's a safe space
where it is expected that people asking questions do not know a lot Airflow (yet!).
If you need help with Airflow see the Slack channel #user-troubleshooting
.
To check on how mentoring works for the projects under Apache Software Foundation's Apache Community Development - Mentoring.
You can learn about various roles and communication channels in the Airflow project,
- Roles in Airflow Project describes the roles in the Airflow project and how they relate to each other.
- How to communicate describes how to communicate with the community and how to get help.
You can learn how to setup your environment for development and how to develop and test code:
- Contributors quick start describes how to set up your development environment and make your first contribution. There are also more detailed documents describing how to set up your development environment for specific IDE/environment:
- How to contribute describes various ways how you can contribute to Airflow.
- Pull requests describes how you can create pull requests and you can learn there what are the pull request guidelines and coding standards.
- Development environment describes the developments environment
used in Airflow.
- Local virtualenv describes the setup and details of the local virtualenv development environment.
- Breeze describes the setup and details of the Breeze development environment.
- Static code checks describes the static code checks used in Airflow.
- Testing describes what kind of tests we have and how to run them.
- Building documentation describes how to build the documentation locally.
- Working with Git describes the Git branches used in Airflow, how to sync your fork and how to rebase your PR.
You can learn how Airflow repository is a monorepo split into airflow and provider packages, and how to contribute to the providers:
- Provider packages describes the provider packages and how they are used in Airflow.
Once you can also dive deeper into specific areas that are important for contributing to Airflow:
- Airflow dependencies and extras describes the dependencies - both required and optional (extras) used in Airflow.
- Metadata database updates describes how to make changes in the metadata database.
- Node environment setup describes how to set up the node environment for Airflow UI.
- Architecture diagram describes how to create and update the architecture diagrams embedded in Airflow documentation.
Finally there is an overview of the overall contribution workflow that you should follow
- Contribution workflow describes the workflow of contributing to Airflow.