mirror of
https://github.com/apache/airflow.git
synced 2026-11-04 07:12:48 +00:00
Co-authored-by: Wei Lee <dev@wei-lee.me> Signed-off-by: arijitroy003 <arijitroy003@gmail.com>
290 lines
14 KiB
ReStructuredText
290 lines
14 KiB
ReStructuredText
.. 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.
|
|
|
|
Committers and PMC members
|
|
==========================
|
|
|
|
Before reading this document, you should be familiar with the `Contributors' guide <contributing-docs/README.rst>`__.
|
|
This document assumes that you are a bit familiar with how Airflow's community works, but you would like to learn more
|
|
about the rules by which we add new committers and PMC members.
|
|
|
|
.. contents:: Table of Contents
|
|
:depth: 2
|
|
:local:
|
|
|
|
Committers vs. Maintainers
|
|
--------------------------
|
|
|
|
Often you can hear two different terms about people who have write access to the Airflow repository -
|
|
"committers" and "maintainers". This is because those two terms are used in different contexts.
|
|
|
|
* "Maintainers" is term used in GitHub documentation and configuration and is a generic term referring to
|
|
people who have write access to the repository. They can merge PRs, push to the repository, etc.
|
|
* "Committers" is a term used in Apache Software Foundation (ASF) and is a term referring to people who have
|
|
write access to the code repository and has a signed
|
|
`Contributor License Agreement (CLA) <https://www.apache.org/licenses/#clas>`_ on file. They have an
|
|
apache.org mail address. This is an `official role <https://www.apache.org/foundation/how-it-works/#roles>`_
|
|
defined and governed by the Apache Software Foundation.
|
|
|
|
For all practical purposes, both terms are interchangeable because the Apache Software Foundation rule is
|
|
that only Committers can have write access to the repositories managed by the PMC (Project Management Committee)
|
|
and that all Committers get write access to the repository.
|
|
|
|
You will see both terms used in different documentation, therefore our goal is not to use one of the terms
|
|
only - it is unavoidable to see both terms anyway. As a rule, we are using "committer" term in the context
|
|
of the official rules concerning Apache Software Foundation and "maintainer" term in the context where
|
|
technical GitHub access and permissions to the project are important.
|
|
|
|
Guidelines to become an Airflow Committer
|
|
------------------------------------------
|
|
|
|
Committers are community members who have write access to the project's
|
|
repositories, i.e., they can modify the code, documentation, and website by themselves and also
|
|
accept other contributions. There is no strict protocol for becoming a committer. Candidates for new
|
|
committers are typically people that are active contributors and community members.
|
|
|
|
Some people might be active in several of those areas and while they might not have enough 'achievements' in any
|
|
single one of those, their combined contributions in several areas all count.
|
|
|
|
As a community, we appreciate contributions to the Airflow codebase, but we also place equal value
|
|
on those who help Airflow by improving the community in some way. It is entirely possible to become
|
|
a committer (and eventually a PMC member) without ever having to change a single line of code,
|
|
but that requires visibility and presence in the regular community channels - slack, devlist, social
|
|
media - this is important for the PMC to be aware of such activities. If PMC is not aware of those, they
|
|
have no chance to spot and promote such candidates.
|
|
|
|
Guidelines from ASF are listed at ASF:
|
|
`New Candidates for Committership <https://community.apache.org/newcommitter.html#guidelines-for-assessing-new-candidates-for-committership>`_
|
|
|
|
|
|
Prerequisites
|
|
^^^^^^^^^^^^^
|
|
|
|
General prerequisites that we look for in all candidates:
|
|
|
|
1. Consistent contribution over at least three months
|
|
2. Visibility on discussions on the dev mailing list, Slack channels or GitHub issues/discussions
|
|
including casting non-binding votes and testing release candidates for various Airflow releases.
|
|
3. Helping other contributors and users by engaging in their code contributor's experience like providing constructive feedback, suggestions, and reviewing their code
|
|
4. Contributions to community health and project's sustainability in the long-term
|
|
5. Understands contributor/committer guidelines: `Contributors' Guide <contributing-docs/README.rst>`__
|
|
|
|
|
|
Code contribution
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
A potential candidate for committership typically demonstrates several of the following:
|
|
|
|
1. Makes high-quality commits (including meaningful commit messages), and assess the impact of the changes, including
|
|
upgrade paths or deprecation policies
|
|
2. Tests Release Candidates to help the release cycle
|
|
3. Proposes and/or leads Airflow Improvement Proposal(s) to completion
|
|
4. Demonstrates an understanding of several of the following areas or has displayed a holistic understanding
|
|
of a particular part and made contributions towards a more strategic goal
|
|
|
|
- Airflow Core
|
|
- Airflow Task SDK
|
|
- airflowctl
|
|
- API
|
|
- Docker Image
|
|
- Helm Chart
|
|
- Dev Tools (Breeze / CI)
|
|
- Providers - especially those where PMC is a steward
|
|
|
|
5. Has made a significant improvement or added an integration with services/technologies important to the Airflow
|
|
Ecosystem
|
|
6. Actively participates in the security process, as a member of the security team, discussing, assessing and
|
|
fixing security issues.
|
|
7. Demonstrates skills to maintain the complex codebase to ensure keeping maturity of product and complexity
|
|
8. Has been actively helping other contributors and users - in Slack, GitHub issues, GitHub discussions - by
|
|
guiding their coding practices, reviewing their code and answering code-related questions
|
|
|
|
Note: As mentioned earlier, there may be exceptions for code contributions requirements for contributors who
|
|
provide sustained, high-impact non-code contributions (for example, community leadership, outlining AIPs, etc.).
|
|
Such exceptions are rare and chosen selectively, so contributors with coding skills who aim to become committers
|
|
and PMC members are generally encouraged to follow the regular path.
|
|
|
|
|
|
Community contributions
|
|
^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
1. Actively participates in `triaging issues <ISSUE_TRIAGE_PROCESS.rst>`_ showing their understanding
|
|
of various areas of Airflow and willingness to help other community members.
|
|
2. Improves documentation of Airflow in significant way
|
|
3. Leads/implements changes and improvements introduction in the "community" processes and tools
|
|
4. Actively spreads the word about Airflow, for example organising Airflow summit, workshops for
|
|
community members, giving and recording talks, writing blogs
|
|
5. Reporting bugs with detailed reproduction steps
|
|
6. Provide feedback and responds when asked about testing proposed fixes and release candidates and
|
|
encourages others to do so
|
|
|
|
|
|
Committer Responsibilities
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
Committers are more than contributors. While it's important for committers to maintain standing by
|
|
committing code, their key role is to build and foster a healthy and active community.
|
|
This means that committers should:
|
|
|
|
* Review PRs in a timely and reliable fashion
|
|
* They should also help to actively whittle down the PR backlog
|
|
* Answer questions (i.e. on the dev list, in PRs, in GitHub Issues, slack, etc...)
|
|
* Take on core changes/bugs/feature requests
|
|
* Some changes are important enough that a committer needs to ensure it gets done. This is especially
|
|
the case if no one from the community is taking it on.
|
|
* Improve processes and tooling
|
|
* Refactoring code
|
|
* Taking part in handling regular chores - i.e. maintenance of Airflow - for example making sure that
|
|
our canary builds are green, upgrading dependencies regularly, monitoring for security alerts.
|
|
Ideally also automating those as much as possible.
|
|
|
|
|
|
Guidelines for promoting Committers to Airflow PMC
|
|
--------------------------------------------------
|
|
|
|
To become a PMC member the committers should meet all **general prerequisites**.
|
|
Apart from that the person should demonstrate distinct and sustained **community involvement** or
|
|
**code contributions**.
|
|
|
|
|
|
Prerequisites
|
|
^^^^^^^^^^^^^
|
|
|
|
* Has been a committer for at least 3 months
|
|
* Is currently an active community member
|
|
(Visible in mailing list, other channel discussions or reviewing PRs at the minimum)
|
|
|
|
|
|
Community involvement
|
|
^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Visibility on discussions on the dev mailing list
|
|
* Spreading the word for "Airflow" either:
|
|
|
|
* Talks at meetups, conferences, etc
|
|
* Creating content like videos, blogs, etc
|
|
* Actively participates in public discussions about Airflow happening in social media or GitHub,
|
|
promoting Airflow as a product
|
|
|
|
* Growing the community:
|
|
|
|
* Mentors new members/contributors
|
|
* Answers users/contributors via GitHub issues, dev list or slack
|
|
|
|
* Is aware and pays attention to public image of Airflow
|
|
|
|
* Watches and takes part in public discussions about Airflow
|
|
* Flags cases which might be problematic for Airflow community
|
|
* Is wary about the use of Airflow Registered trademark and name
|
|
|
|
|
|
Code contribution
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
* Consistent voting on release candidates for at least past 3 releases lifecycles
|
|
* Engagement in Airflow Improvements Proposals either:
|
|
|
|
* Has been actively voting on AIPs
|
|
* Has been proposing and leading their implementation
|
|
|
|
* Actively involved in code contributions:
|
|
|
|
* Code reviews
|
|
* Merging pull requests
|
|
* Fixing bugs and implementing improvements
|
|
* Actively participating in the security process and significantly contributing to overall security of
|
|
Airflow
|
|
|
|
|
|
Only a current PMC member can nominate a current committer to be part of PMC.
|
|
|
|
If the vote fails or PMC members need more evidence, then one of the PMC Members (who is not the Proposer)
|
|
can become the Mentor and guide the proposed candidates on how they can become a PMC member.
|
|
|
|
1. Candidate Proposer
|
|
|
|
This is the person who launches the DISCUSS thread & makes the case for a PMC member promotion
|
|
|
|
2. Candidate Mentor
|
|
|
|
If the committee does not have enough information, requires more time, or requires more evidence of
|
|
candidate's eligibility, a mentor, who is not the proposer, is selected to help mentor the candidate
|
|
The mentor should try to remain impartial -- their goal is to provide the missing evidence and to
|
|
try to coach/mentor the candidate to success.
|
|
|
|
|
|
Inactive Committers
|
|
-------------------
|
|
|
|
If you know you are not going to be able to contribute for a long time
|
|
(for instance, due to a change of job or circumstances), you should inform the PMC and we will mark you
|
|
as "inactive". Inactive committers will be removed from the "roster" on ASF and will no longer have the power
|
|
of being a Committer (especially write access to the repos). As merit earned never expires, once you
|
|
become active again you can simply email the PMC and ask to be reinstated.
|
|
|
|
The PMC also can mark committers as inactive after they have not been involved in the community for
|
|
more than 12 months.
|
|
|
|
|
|
New Committer Onboarding Steps
|
|
------------------------------
|
|
|
|
To be able to merge PRs, committers have to integrate their GitHub ID with Apache systems. To do that follow steps:
|
|
|
|
1. Verify you have a GitHub ID
|
|
`enabled with 2FA <https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/>`__.
|
|
2. Merge your Apache and GitHub accounts using
|
|
`GitBox (Apache Account Linking utility) <https://gitbox.apache.org/setup/>`__. This also asks you to link your
|
|
GitHub ID to your Apache account. You should see 5 green checks in GitBox.
|
|
3. Wait at least 30 minutes for an email inviting you to Apache GitHub Organization and accept invitation.
|
|
4. After accepting the GitHub Invitation verify that you are a member of the
|
|
`Airflow committers team on GitHub <https://github.com/orgs/apache/teams/airflow-committers>`__.
|
|
|
|
Additionally, as a committer you can view the team membership at:
|
|
|
|
* https://github.com/orgs/apache/teams/airflow-committers/members
|
|
* https://whimsy.apache.org/roster/committee/airflow
|
|
|
|
5. After confirming that step 5 is done, open a PR to include your GitHub ID in:
|
|
|
|
* ``dev/breeze/src/airflow_breeze/global_constants.py`` (COMMITTERS variable)
|
|
* name and GitHub ID in `project.rst <https://github.com/apache/airflow/blob/main/airflow-core/docs/project.rst>`__.
|
|
* If you had been a collaborator role before getting committer, remove your GitHub ID from ``.asf.yaml``.
|
|
|
|
6. Raise a PR to `airflow-site <https://github.com/apache/airflow-site>`_ repository with the following additions:
|
|
(A kind request: If there are other committers who joined around the same time, please create a unified PR for
|
|
all of you together.)
|
|
|
|
* List your name(s) in the
|
|
`committers list <https://github.com/apache/airflow-site/blob/main/landing-pages/site/data/committers.json>`__.
|
|
* Post an entry in
|
|
`Announcements <https://github.com/apache/airflow-site/blob/main/landing-pages/site/content/en/announcements/_index.md>`__.
|
|
|
|
|
|
|
|
New PMC Member Onboarding steps
|
|
-------------------------------
|
|
|
|
1. Familiarise yourself with `PMC Responsibilities <https://community.apache.org/pmc/responsibilities.html>`_
|
|
2. Subscribe to the private mailing list: ``private@airflow.apache.org``. Do this by sending an empty email to
|
|
``private-subscribe@airflow.apache.org`` and following the instructions in the automated response you'll receive.
|
|
3. Ask another PMC member to add you to ``#pmc-private`` channel on slack
|
|
4. Make a PR in https://github.com/apache/airflow-site to move your data from the ``landing-pages/site/data/committers.json``
|
|
to the ``landing-pages/site/data/pmc.json``. if more than one PMC member was added, coordinate with the others
|
|
to make a single PR for everyone. In the same PR, post an entry in
|
|
`Announcements <https://github.com/apache/airflow-site/blob/main/landing-pages/site/content/en/announcements/_index.md>`__.
|