서론
이번에 우연찮게 influxdb의 docs를 읽다가 잘못 적혀있는 부분을 발견했다.
처음엔 공식 docs에 잘못 적힌 부분이 다 있네? 하고 넘어가려고 했는데, 불현듯 이전에 들었던 오픈소스 Contributor에 대해 떠올랐다.
어? 이거 내가 수정하면 오픈소스 생태계에 일조를 하는건가?
정말 단순히 단어 하나 고치는 거지만 주니어 개발자의 입장에서 너무 흥분되는 일이 아닐 수 없기에 바로 시도해보기로 했다.
오픈소스 Contribution이란?
말 그대로 오픈소스에 기여하기!
컨트리뷰션은 오픈소스에 참여하고 기여하는 모든 활동을 의미한다.
단순히 소스 코드 수정 개발 뿐만 아니라 의견을 제시하거나 버그에 대해 알리는 것만으로도 Contribution이라고 한다.
오픈소스 Contribution을 하는 방법
대형 오픈소스의 경우 Contribution을 하는 규칙을 readme에 작성 해놓기도 하는데, readme에 없다면 이전에 closed 된 pull request를 참고해보도록 하자.
그래도 일반적인 방법으로는 아래와 같이 진행할 수 있다.
1. 오픈소스를 Folk 떠오기
2. 로컬 환경에 clone
3. branch를 생성
4. 변경하고자 하는 부분을 수정
5. 커밋 푸시
6. pull request를 날리기
처음엔 막연히 어려울 거라 겁먹었는데 생각보다 쉽고 간단했다.
수정할 오픈소스 repo 찾기
먼저 수정할 오픈소스의 repo를 찾아가야 한다.
나는 github에서 influxdb docs를 검색하니 바로 위에 있었다.
Contribution 가이드 라인 읽기
influxdb docs는 readme에 Contribution관련 내용을 가장 위에 적어 놨다.
혹시라도 읽어 보고 싶으신 분이 있다면 아래 링크에서 읽어보실 수 있다.
https://github.com/influxdata/docs-v2/blob/master/CONTRIBUTING.md
내용을 읽어보니 docs를 작성할 때 지켜야할 컨벤션이 쭉 들어가 있고,
CLA와 Contribution하는 방법에 대해 자세히 적혀있었다.
CLA는 Contributor License Agreement라고 내가 수정한 코드에 대한 저작권을 넘겨준다는 의미로 나는 받아 들였다.
그런데 단순히 오타 교정이나 잘못된 링크 수정은 CLA를 하지 않아도 된다고 명시되었다. (하더라도 그냥 인증서 동의 하는 정도의 느낌이다.)
repo fork 뜨기
이제 방법을 알았으니 수정을 해보기로 하자.
우측 상단에 있는 Fork를 눌러준다.
그러면 내 Repository에 들어가 있는 오픈소스 repo를 확인 할 수 있다.
받아온 Repository에서 clone을 받아 local에 저장한다.
local에서 수정하고자 하는 부분을 바꾸고 commit을 한다.
여기서 브랜치를 분리해서 브랜치에 변경 사항을 적어야 할 것 같다. (정확하진 않지만 다른 pull request를 참고해서 그렇게 했다.)
내가 수정한 부분들 이다.
v2.2에 해당 문서가 처음 생겼는데 v2.7까지 동일한 소스가 들어가 있어서 모두 바꿔주었다.
pull request 날리기
드디어 대망에 풀리퀘를 날릴게 됐다.
내 repo에 push가 되면 위와 같이 풀 리퀘를 날릴 수 있는 버튼이 생기게 된다.
그러면 이런 창이 뜨는데 내가 수정한 부분에 대한 설명을 comment로 남겨주어야 한다.
설명을 다 적었으면 풀리퀘를 날리면 된다!
코어 개발자와 소통하기
이 과정까지 마쳤으면 이제 코어 개발자가 내 풀리퀘를 봐주기를 기다리면 된다.
보통은 풀리퀘에 댓글을 통해 코드에 대한 의견을 나누고 코어 개발자가 머지를 해주는 것으로 Contributor가 될 수 있다.
나의 경우 간단한 오타 교정이라 바로 다음날에 아래와 같은 답변을 받았다.
뭔가 더 추가하셨다네..?
내가 바꾼 부분 바로 밑에 example도 examle로 적혀 있었다 ㅎㅎㅎㅎㅎ
코어 개발자가 example을 변경하고 나서 머지가 이루어 졌다.
그럼 정말 잘 바뀌어져 있는지 확인해보자
크... 잘 바뀐 것을 확인할 수 있다.
나의 소중한 첫 Contribution
https://github.com/influxdata/docs-v2/pull/4913
'개발 이모저모 > 이모저모' 카테고리의 다른 글
AWS RDS MSSQL에는 sysadmin 권한을 가질 수 없다. (0) | 2022.06.03 |
---|---|
EC2 서버 DISK USED 해결 (log 제거) (0) | 2022.05.02 |
Slack API를 통해 하이퍼링크 메세지 보내기 (0) | 2022.03.07 |
[Discord bot] java 디스코드 봇 만들기 (6) | 2021.11.17 |
2021년 Top 5 개발 트렌드 (1) | 2021.10.06 |