I like the proposal. Can't really disagree with people voluntarily taking 
ownership of specific aspects of the codebase.
Given the complexity of Airflow, I'm sure the users would appreciate if we have 
the DOCOWNERS as well for various sections of the documentation : )

Shubham

On 2025-02-08, 9:27 AM, "Jarek Potiuk" <ja...@potiuk.com 
<mailto:ja...@potiuk.com>> wrote:


CAUTION: This email originated from outside of the organization. Do not click 
links or open attachments unless you can confirm the sender and know the 
content is safe.






AVERTISSEMENT: Ce courrier électronique provient d’un expéditeur externe. Ne 
cliquez sur aucun lien et n’ouvrez aucune pièce jointe si vous ne pouvez pas 
confirmer l’identité de l’expéditeur et si vous n’êtes pas certain que le 
contenu ne présente aucun risque.






Hello here,


For quite some time I thought that we should make a slightly better
use of our CODEOWNERS file and feature and agree on some kind of
"social contract" we have around it.


With providers (almost) moved, we have simplified a lot the CODEOWNERS
file recently and now it's going to be far simpler to set some of the
rules up - especially for providers. We are also approaching some
further package splits so our monorepo will become far better
modularised, also a number of refactorings - for example dag processor
ones done by Jed and Daniel recently - made the code related to single
feature to "live" closer together. And possibly we will do more of
that.


So far our "social contract" on what it means to be in CODEOWNERS was
not really clear. But maybe - with airflow 3 and all the refactorings,
it will be much easier and cleaner to actually draw a bit easier and
better boundaries between different areas of Airflow - we will have
better "internal" splits - for example 'task_sdk" , "apis" etc. and we
have quite significant number of maintainers (only maintainers can be
added as CODEOWNERS) to cover quite a lot of our code with "experts"
kind of notion for each area (including some bigger and smaller
providers).


CODEOWNERS is a bad name though - because CODEOWNERS does not reflect
the basic assumption that ASF has - that all committers and PMC
members are stewards (not owners) of all the code that belongs to the
PMC, but in essence CODEOWNER means two things:


* you will get notified when someone opens a PR that touches area you
are a CODEOWNER of
* people opening the PR will see that you are assigned as reviewer in such case


Which might actually correlate well with being an "expert" in this
area and someone who should "likely" review PRs there.


Proposal:


So I think maybe this is a chance to make a bit of order in CODEOWNERS
(currently it's a bit of a mess and random entries). With the notion
that;


1) any of the maintainers can sign-up to be CODEOWNER of certain area
when they think they are expert there


but:


2) this also means that there is an expectations that they will be
reviewing code in this area when they are defined as CODEOWNER (of
course taking into account all volunteer limitations, no expectations
on specific timelines, and taking into account all vacations and such.


3) we communicate that in our README and contributor's guide so that
contributors who contribute a PR understand that and eventually might
also (after some time) ping the right people - also other maintainers
will have a clear information who of the maintainers thinks of
themselves as "expert" in the area - which might make it easier to
know whom to reach out when there are doubts/questions.




Ideally we should have 2/3 people at least in all important areas and
possibly in big/important providers - to avoid SPOF.


Also we could see where we are lacking "expertise" and that might
guide other maintainers who would like to learn a certain area -
signing up as CODEOWNER there might also be a good way to learn by
more frequent reviews of the area you are signed up to.


And of course at any time any of the maintainers can sign-out by a PR
and/or we can make some periodic reviews of the areas and see if we
need some more "bringing an expert" in certain areas.


I wonder what your thoughts are about it. There are certain things
here that might be problematic - when we do it this way and agree to
this "social contract" it is some kind of "commitment" - yeah I am
going to look at those PRs coming in a reasonable time, and people who
are volunteers might not want it, but - then they might simply
sign-out to signal they have no time/focus/free cycles to be looking
at those, so this is something that any maintainer can manage and
signal their "readiness" to help in different areas.


BTW. You might not know that the word "committer" that we use in ASF
comes from "commitment" not from "commit permission". So "committing"
to certain areas, sounds pretty appropriate :)


Looking forward to feedback on that.


J.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org 
<mailto:dev-unsubscr...@airflow.apache.org>
For additional commands, e-mail: dev-h...@airflow.apache.org 
<mailto:dev-h...@airflow.apache.org>






---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org
For additional commands, e-mail: dev-h...@airflow.apache.org

Reply via email to