안녕하세요, Airflow 기여자 여러분.
그동안 Airflow에 기여하다 보면 이슈를 assign(할당) 받아 작업을 진행하는 문화가 자연스럽게 자리 잡아 왔습니다.
하지만 최근 assign 사용 방식에 대해 몇 가지 고민이 제기되었고, 이에 대해 커뮤니티 차원에서 어떤 논의가 진행되고 있는지 공유드리고자 합니다.
현재 발생하고 있는 문제
이슈가 “막히는” 현상
이슈가 특정인에게 assign되면, 다른 기여자들이 “이미 누군가 맡고 있으니 작업하면 안 되겠지”라고 생각하고 참여를 주저하는 경우가 있습니다.
그 결과:
- 실제 작업은 진행되지 않는데
- 이슈는 할당 상태로 남아 있고
- 새로운 기여자는 접근하지 못하는 상황
이 발생하고 있습니다.
미완료 assign 정리에 드는 비용
완료되지 않은 assign을 정리하는 것은 생각보다 많은 관리 리소스를 필요로 합니다.
하지만 현실적으로 모든 미완료 assign을 지속적으로 정리하는 것은 쉽지 않습니다.
그로 인해 오래된 이슈에 할당자가 남아 있고 실제로는 아무도 작업하지 않는 상태가 지속되는 경우가 발생하고 있습니다.
그래서 오래된 이슈들 중 일부는 할당된 사람이 있어서 새로운 기여자들이 손대지 못하는 경우가 있습니다.
GitHub Assignment의 본래 역할
GitHub의 assign 기능은 본래 두 가지 목적을 가지고 있습니다:
- 자신이 맡은 이슈를 쉽게 확인할 수 있도록 돕는 기능
- 동일 이슈에 여러 사람이 동시에 작업하는 것을 방지하는 역할
하지만 이전부터 assign이 마치 독점권처럼 오해되는 사례가 있었습니다.
예를 들어:
“내가 assign되어 있었는데 왜 다른 사람이 PR을 올렸나요?”
와 같은 불만이 제기되기도 했습니다.
그러나 오픈소스에서 assign은 소유권이 아닙니다.
최근 제안된 방향
assign의 의미를 다음과 같이 재정의하자는 제안이 있었습니다:
“나는 이 사람을 알고 있으며, 이 사람이 끝까지 작업을 완료하거나, 완료할 수 없다면 스스로 assign을 해제할 것이라고 신뢰한다.”
이를 바탕으로 다음과 같은 운영 원칙을 제안합니다.
신뢰 기반 assign
- 커미터 또는 우리가 신뢰할 수 있는 기여자에게만 assign합니다.
- 해당 이슈를 끝까지 책임지고 이끌 것이라고 신뢰할 수 있는 경우에 한합니다.
- 완료할 수 없다고 판단되면 스스로 unassign하는 것을 기대합니다.
신규 기여자 assign 중단
- 알 수 없는 신규 기여자가 요청하더라도 assign하지 않습니다.
- “이 이슈를 맡아도 될까요?”라는 질문은 지양하도록 안내합니다.
- 대신, 작업하고 싶다면 바로 PR을 열어주세요.
이는 이슈 댓글의 노이즈를 줄이고, 실질적인 기여 중심의 문화를 만들기 위함입니다.
동시에 여러 명이 작업해도 괜찮습니다
- 이슈가 assign되지 않은 상태에서 여러 사람이 동시에 작업하는 것은 전혀 문제가 아닙니다.
- 리뷰를 거쳐 더 완성도 높은 PR이 먼저 머지됩니다.
- 다른 PR이 더 좋다면 리뷰를 통해 돕는 것도 훌륭한 기여입니다.
마무리하며
이 방식이 완벽한 해결책인지는 저는 아직 잘 모르겠습니다.
assign을 중단하게 되면 중복 PR이 발생할 가능성도 있고, 여러 PR을 비교, 검토하는 과정에서 리뷰 리소스가 더 들어갈 수도 있습니다.
하지만 현재 상황을 보면, 작업이 진행되지 않는 assign이나 장기간 응답이 없는 PR을 정리하는 데 드는 비용이 그보다 많이 들고 있는 것 같습니다. 심지어 저도 정리하면서 오래된 것들은 미뤄두기도 했으니까요… 하핫 ![]()
그래서 결국 우리가 고민하는 것은 효율성의 문제가 아니라, 커뮤니티의 건강성에 대한 문제라고 생각합니다.
오픈소스 기여는 단순히 코드를 push해서 기록을 남기는 행위만을 의미하지는 않는 것 같습니다.
생태계를 위하는 마음,
다른 기여자의 시간을 존중하는 태도,
리뷰어의 리소스를 아끼는 배려,
이 모든 것이 함께 모여 커뮤니티를 만들어간다고 생각합니다.
이슈를 독점하거나, 끝까지 책임지지 못할 assign을 요청하여 잠수를 타거나, 리뷰어들의 시간을 불필요하게 소모시키는 행동은 의도와 달리 생태계에 부담을 줄 수 있습니다.
이슈를 “선점”하는 문화가 아니라, 더 나은 결과물을 중심으로 협력하는 문화가 자리 잡는다면 커뮤니티는 더 단단해질 것이라고 믿습니다.
아직 최종 결정된 사항은 아니며, 현재 메일링 리스트에서 논의가 진행 중입니다.
관심 있으신 분들은 아래 스레드를 참고해주시고, 자유롭게 의견을 남겨주세요.
논의 메일링 리스트:
https://lists.apache.org/thread/slgcqs2csn1fngn65g5srrqn8xtsghn7