[Android][Kotlin] 구글 오픈소스 컨트리뷰터가 되어보자

D.O·2023년 10월 8일
0

2023-12-22 추가++

3개의 모든 PullRequest가 최종적으로 병합되었다.

2023-10-24 추가++

오늘, 내가 작성한 두 번째 도전 PullRequest가 최종적으로 병합되었다!

대형 오픈소스 프로젝트, 특히 내가 많은 도움을 받은 이러한 프로젝트에 작은 부분이지만 내 코드가 추가되었다는게 너무 뿌듯하다.

자신감이 붙어서 앞으로 적극적으로 이러한 활동을 해보고자 한다!

2023-10-26 추가++

오늘 내가 작성 한 세 번째 PullReqeust가 무려 제출한지 3시간 만에 병합되었다.

변경 내용으로 는 Kotlin 버전 1.9.0 이후 부터 data object가 안정화되어 selead interface에서 사용하기를 권장하는데 그 부분이 적용되어 있지 않아서 적용 후 Reqeust를 작성하였다.

해당 부분에 대한 본문 링크이다.


안드로이드 개발 공부를 하며 참고하였던 오픈소스인 nowinandroid를 분석하면서 의문이 드는 부분이 생겼던 경우들이 있다.

Now In Android란

Now In Android는 Google의 Android 팀에서 개발중인 앱이다. 이 앱은 Android 디자인 및 개발 모범 사례를 따르며, 개발자들에게 유용한 참조가 되도록 의도되었다고 한다. 이 앱은 GitHub에서 오픈 소스로 제공하기에 누구든지 참여하고 기여할 수 있는데 내가 그 누구가 되고 싶다는 열망이 들었다.

첫번째 도전

일단 지인들이랑 이런한 대규모 프로젝트에 대해서 처음 도전해보는거라 간단한 부분부터 수정을 해서 시도를 해봤다.

그 전에 다른 사람들이 요청한 풀리퀘스트를 살펴보니 아래 서약서를 작성하지 않아서 거절당하는 경우가 많은 것을 확인했다.

아래 화면은 Google Open Source의 "Contributor License Agreements" 페이지인데

Google 오픈 소스 프로젝트에 기여하려면 Contributor License Agreement (CLA)를 서명해야 한다고 한다.

찾아보니 내가 제출한 코드의 저작권을 프로젝트에 양도한다는것을 보장해야해서 필요한 것 같다.

그래서 해당 페이지 들어가서 서명해주고 진행하였다.

나는 Test 코드에 대해서 분석하던 중 바텀바 네비게이션 테스트 부분에 누락된 부분이 있는 것을 확인하고 바로 Fork떠서 수정 후 풀리퀘스트를 날렸다. (PullRequest 작성하는 자세한 과정은 두번째 도전에서 쓰겠다.)

내가 작성한 첫번째 pullrequest 부분은 여기에서 볼 수 있다.

하지만 글을 쓰는 시점에 2주가 지난 지금도 아직 아무런 반응이 없다.
권한을 가진 분이 리뷰를 해주고 승인을 하면 merge가 된다고한다.

대형 프로젝트여서 오랜시간이 걸리는 것이라 생각한다...
그래도 워크플로 승인은 받아서 완전히 통과하였고 아직 Close 되지 않았으니 희망이 있다고 생각한다. 결과가 나오면 글에 추가하겠다..!

두번째 도전

이번에는 Issue 까지 작성해서 같이 풀리퀘스트를 날렸다.

benchmark 부분에 확장 함수를 정의해둔채 동일한 로직에 대해서 어떤 부분은 해당 확장함수를 사용하고 어떤 부분은 그냥 하드 코딩을 한 부분을 확인하였고 이를 수정하였다.

일단 노션에 미리 한국어로 정리를 한다음에 영어로 번역했다.
영어가 어색한 부분이 없는지 열심히 확인했지만 잘 되었는지 모르겠다.

위가 노션에 정리한 것이고 아래가 Issue 템플릿에 맞게 작성한 것이다.

이제 해당 이슈번호를 가지고 pullreqeust를 생성 할 차례다.

일단 기존에 fork하고 clone해두었던 곳에 sync를 맞춰서 최신 코드를 가져왔고 pull을해서 내 로컬에도 최신 코드로 가져왔다.

그리고 아래 처럼 해당 수정 작업을 진행할 브렌치를 생성하였다.

이제 해당 브렌치에서 코드 수정을해주고

수정 후 테스트는 필수!

그리고 테스트가 정상적으로 완료되었으면 commit후 push

아까 작성한 Issue 번호만 가져와서 pullRequest 내용으로 추가하고 해당 내용은 간단히만 적었댜.

이렇게 작성해서 pullReqeust를 작성 완료하면 아까 작성하였던 Issue에 붙는다.

짜잔

두번째 도전 Issue는 여기에서 확인할 수 있다.

마무리

내가 공부하며 도움을 많이 받았던 해당 프로젝트에 기여할 수 있으면 좋겠다. 또 누군가 내가 작성한 코드로 도움을 받는다면 굉장히 뿌듯할 것 같다.

pullReqeust에 반응이 오면 글에 추가하겠습니다..! 감사합니다.

profile
Android Developer

0개의 댓글