cuspymd

To tracks an individual's memory and history

View on GitHub
6 April 2019

제일 쉬운 오픈소스 기여

오픈소스에 기여하고 싶은가? 하지만 생각만큼 간단하진 않다. 일단 어떤 오픈소스 프로젝트에 기여할지 정해야 하고. 무엇을 수정할지 알려면 프로그램을 일단 사용해 봐야 한다. 다행히 문제점을 찾았다면 이미 진행되고 있는 PR(Pull Request)가 있는지도 확인해야 한다. 수정할 부분을 찾기 위해 코드 분석도 해야 하며, 빌드는 어떻게 이루어지는지 Unit test 는 어떻게 하고 있는지도 확인이 필요하다. 코드의 수정 포인트를 찾았다고 끝이 아니다. Contributing을 하려면 어떤 과정을 거쳐야 하고, 어떤 요구사항을 만족해야 하는지도 파악해야 한다.

그래도 오픈소스에 기여하고 싶은가? 그렇다면 그나마 쉬운 두 가지 방법이 있다.

문서화 기여

대부분의 오픈소스 프로젝트의 문서들이 github 소스코드에 포함되어 있다. 즉 누구나 수정할 수 있다. 인기 있는 프로젝트의 경우 소스들이 굉장히 빠르게 바뀌는데, 그에 대한 문서들도 코드 변화에 맞춰 제때 반영하는게 쉽지 않다. 설령 그 문서들이 작성될 시기에는 설명이 정확했겠지만, 코드가 변해서 설명이 안맞는다는지 하는 경우가 허다하다.

만약 어떤 오픈소스 프로젝트에 관심을 가지게 된다면, 가장 처음 하는 자연스런 행동은 그 프로젝트의 튜토리얼(Tutorial)을 보고 따라 하는 것이다. 그리고 그 튜토리얼을 따라 하다 보면, 반드시 자연스럽지 않은 부분이나 잘못된 부분 한두 군데가 눈에 띄게 마련이다. 그런 경우 페이지의 스크롤을 끝까지 내리면 ‘Edit this page’ 같은 링크가 반드시 있다. 그 링크를 누르면 그 문서의 github 파일로 연결되고 거기서 자연스럽게 수정을 하면 된다.

빌드에 신경 쓸 필요도 없고, Unit test 실패를 걱정할 이유도 없다. 물론 이 수정 사항에 대한 PR이 이미 진행 중 인지는 확인이 필요하다. PR을 위해 Repository Fork도 해야한다. 하지만 마크다운(markdown) 페이지 같은 경우 github UI에서 바로 수정 및 확인이 가능하므로 소스 코드를 로컬에 다운받는 수고도 할 필요가 없다.

커맨드라인 명령어 도움말(CMD help meassage)

커맨드라인 명령어를 지원하는 오픈소스 프로젝트의 경우. 왠만한 오픈소스 프로젝트의 커맨드라인 명령어는 보통 많은 수의 옵션과 보조(sub) 커맨드들을 가지고 있다. 자주 사용하는 커맨드라인 명령어가 있다면 command -h 를 실행해 보라. 보통은 한 페이지가 넘어가서 전체 목록을 확인하려면 more 명령어를 이용해야할 정도다. 그리고 보조 커맨드를 갖는 명령어의 경우 각 보조 커맨드 마다 옵션을 따로 가지고 있다(command sub-command -h).

많은 옵션과 보조 커맨드. 그리고 그에 대한 설명들. 코드는 빠르게 변하고 도움말은 따라 변하지 않는다. 도움말을 한줄 한줄 읽다 보면 자연스럽지 않거나 잘못된 부분이 한 군데 이상은 있기 마련이다. 물론 소스 코드를 수정해야 하지만, 수정 부분이 코드의 스트링 부분이기 때문에 Unit test 실패를 걱정할 필요가 없다. 단. 이 경우에는 커맨드라인 명령어의 도움말이 소스 코드의 어느 부분에 있는지를 검색해야 하는 수고로움은 존재한다.

tags: opensource - contribute