Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

Mocha.js org의 멤버가 되다

올 초에 세운 목표 중에 오픈소스에 더 많이 참여하기가 있었다. 이전에도 어느 정도 하긴 했지만 사이드 프로젝트 외에 다른 오픈소스 프로젝트에 Pull Request도 많이 보내도 더욱 적극적으로 참여하기로 마음을 먹었다. 그렇게 세운 목표 중 하나가 오픈소스 프로젝트에 메인테이너로 들어가는 것이었다. 개발하다가 발견한 내용에 대해서 Pull Reqeust를 보내서 종종 참여하기는 하지만 특정 오픈소스에 개발에 참여한다고 할 정도로 깊게 들어가 보진 않았다. 정확히는 해봐야지 하다가 매번 못하고 있었다.

mocha.js의 멤버로 합류하게 되다

아침에 출근하면서 트위터를 열자 다음과 같은 멘션이 와있었다.


영어로 트윗을 나눌 사람이 많지 않아서 그냥 스팸인가 하고 보다가 내용확인이 되자 잠이 확 깨버렸다. 저 @boneskull는 현재 mocha.js를 리드하고 있는 개발자인데 놀래서 메일을 열어보니 정말 GitHub의 초대 메일이 와 있었다.

GitHub에서 온 초대 메일

내가 거부할 이유가 무엇이 있을까 당연히 바로 Join을 누르고 들어가고 Mochajs org의 일원이 되고 모든 저장소의 푸시 권한을 갖게 되었다.

Mocha org의 멤버 목록

아직 메인테이너라고 부르기에는 아직 한 일이 없지만, GitHub 시스템에서는 mocha.js의 메인테이너의 권한을 갖게 되었다.

GitHub에서 member로 표시된다

스크린숏이 많게 느껴지는 건 기분 좋아서 기록용으로 많이 찍어서이다. ^^ 아는 사람과 만든 게 아닌 다른 org의 멤버로 합류한 건 [2014년](AngularUI 프로젝트의 멤버가 되다...) 이후 처음인데 저 때는 내 개인 프로젝트가 org로 들어간 거였고 이번은 큰 프로젝트에 들어간 거라 느 느낌이 완전히 다르다. 목표는 원래 닿을 듯 말 듯 한 정도가 좋은데 올해 목표가 벌써 해결되어서 조정해야겠다.

mocha의 멤버가 되기까지

작년 말부터 오픈소스 프로젝트에 더 참여해 보려고 관심 있는 프로젝트는 watching을 걸어서 알림을 다 받아보고 있었다. 모든 이슈를 읽어보는 건 아니지만 이렇게 알림을 받으면 프로젝트에서 이슈나 PR이 어느 정도 처리되고 있는지 어느 정도 알 수 있다. 오픈소스 프로젝트에 들어가는 건 꽤 어려운 부분이 알만한 프로젝트는 이미 상당히 성숙했기 때문에 코드가 복잡해서 참여하기가 쉽지 않고 작은 프로젝트는 알기가 어렵다.

어차피 어려우니까 주로 내가 관심 있거나 사용하는 프로젝트를 위주로 모니터링하면서 이슈 처리하는 부분을 보고 있었다. 오픈소스 프로젝트 기여는 메인테이너들의 성향도 크게 영향을 받아서 메인테이너들이 기여 많이 받으려고 노력하는 프로젝트에 먼저 관심을 두게 되었다. 메인테이너들이 까칠하면 영어도 힘든데 논의하기도 쉽지 않고 PR을 제출해도 들어가기가 쉽지 않다.

작년에 틈틈이 보던 프로젝트는 babel이었는데 Babel의 규모가 워낙 거대하기도 하고 AST랑 ECMAScript 표준에 깊게 연결되어 있어서 알아야 할 부분이 많이 있었다. 여전히 관심이 있었지만 PR 몇 개 올리고는 별다른 작업을 못 하고 있었다.

Readme 파일에 있던 기여 요청 문구

그러다가 올해 목표를 세우고 눈에 들어온 프로젝트가 mocha.js이다. 지금은 제거되었지만 Readme에 기여를 요청하는 내용이 크게 적혀있었다. 내용만 봐도 mocha의 사용자 수에 비해서 @boneskull 혼자 프로젝트를 유지보수 하느라고 고생 중임을 알 수 있었다.

mocha.js는 테스트 프레임워크로 수년 동안 사용하고 있기에 내부 소스는 몰라도 내용이나 사용방법 등은 잘 알고 있었기에 참여를 좀 해볼 수 있을 것 같아서 프로젝트에 올라오는 이슈나 PR을 눈여겨보고 있었다.

mocha 프로젝트 이슈의 라벨들

이슈도 대부분 라벨이 붙어 있어서 참여할 수 있는 이슈를 훨씬 더 찾기 쉬웠다. 그리고 경험상 이슈에 라벨이 잘 붙어 있으면 프로젝트 메인테이너들이 기여하는 사람들한테 훨씬 친절할 가능성이 크다. 저런 라벨링은 관리를 쉽게 하기 위함도 있지만 잘 모르는 사람도 기여할 수 있게 제공하는 부분이기 때문이다.

처음에는 프로젝트 구조를 파악하기 위해서 good-first-issue를 위주로 보다가 비교적 간단해 보이는 이슈를 찾아서 PR을 보냈다. 하라는 거 다 수정했는데 아직도 머지를 안 해주고 있다. 이젠 권한도 있는데 확 내가 해버릴까 보다.

전체 소스 구조는 아직 파악하지 못했지만, 대충의 폴더 및 파일구조와 원하는 부분만 테스트 돌리는 법은 파악했기에 이슈에 올라오는 처리할 수 있는 내용은 수정해서 PR을 올리기 시작했다. 지금 보니 1, 2월에 4개의 PR을 올리고 이 중 2개만 머지되었다.

PR을 처리하기 위해서 이슈도 계속 보고 있었기 때문에 그냥 질문이나 사용법을 몰라서 올라오는 이슈 같은 것도 답변을 달기 시작했다. 권한이 없으면 라벨링이나 이슈, PR 관리는 못 하지만 댓글 정도는 달아서 메인테이너들이 모든 이슈를 다 대응하지 않게 할 수는 있다.

mocha 프로젝트의 내 기여 정보

1, 2월에 참여한 부분을 적었는데 사실상 왜 org에 초대했는지 모를 정도로 한 활동은 미비하다. 위 그래프를 보아도 아직 커밋 4개에 기여 순위도 35위 밖에 되지 않는다. 그래도 PR이랑 이슈에서 종종 보이면서 어느 정도 익숙해졌기 때문인 것 같고 기여할 사람이 많지 않다는 의미이기도 하다. 요즘은 테스트 프레임워크로 Jest가 뜨고 있지만, mocha의 사용자층을 보면 이 정도 기여는 안타까운 일이다.

아무튼, 이제는 권한이 생기었으니 코드 기여가 아니더라도 이슈나 PR 관리 등 할 수 있는 일이 좀 더 많아졌다. @boneskull와 관리하는 방식도 어느 정도 맞추어야 해서 한참 자세히 봐야겠지만 좋은 기회가 생겨서 Mocha를 집중적으로 봐야겠다.

2018/03/07 03:46 2018/03/07 03:46