Monday, September 28, 2015

[How to become an open source contributor?] 2시간만에 컨트리뷰터 되기!

1. 준비되셨나요?

초보도 2시간만에 오픈소스 컨트리뷰터가 될 수 있는가?!
필요한 것: GitHub 계정, 초급 git 사용법, 발사이즈 토익점수, 근성

로직 등 코드에 기여하는 것은 상위 단계의 일이고(뛰기 전에 걸어야 한다는 격언을 생각합니다), 일단 코드 리뷰 수준의 기여를 하도록 합시다.

음 ... 뭐가 있을까 보다가 핫하고 핫한 도커docker를 한 번 보도록 합시다.


2. 오타 찾기

이제부터 오타를 찾을겁니다. 자주 틀리는 영어 표현을 보도록 하죠.
enviroment,
timout,
annotaion,
limitaion,
developement,
11st,
12nd,
2th,
3nd,
pubic,
positoin,
defualt,
seting,
mousenter,
gurantee,
lisence,
milis,
statmeent,
...
등등 자주 틀리는 표현은 많습니다!

근성을 갖고 찾아보도록 합시다. 하지만 쉽지 않을 수도 있습니다... ㅠ_ ㅠ


차...찾았다! 후..후후...후후후후후 인간은 실수의 동물


3. Pull Request(PR)

자, 이제 본격적으로 pull request를 위한 작업을 해보죠.

fork를 뜨고,

clone을 뜨고, (소스트리로 떠보았습니다)


코드 수정을 하기 전에...

웬만한 대형 repo에는 다 Developer Certificate of Origin나 Contributor License Agreement 같은 시스템이 있고, 컨트리뷰트 가이드가 있습니다. 이건 약관에 동의하는 거라고 생각하면 이해가 쉽습니다.
가이드대로 해야 한다! 중요하죠... 그렇지 않은 경우 merge를 할 수 없다는 메시지를 받게 될 겁니다 ^_^ 이슈로 다루길 원하는 repo도 있고, 주석 수정 등 작은 오타는 바로 PR해주길 바라는 repo도 있고, 이것은 해당 repo의 분위기(?)에 따라 다릅니다.

가이드대로 다음처럼 해 봅시다.




다음과 같이 오타를 수정 ^_^! timeout으로!

근데 이 때 주의해야 할 점! indentation이나 new line 타입, encoding을 깨서는 안된다는 것!
얌전하게 고칠것만 고칩시다. (쓰지맙시다 윈도우즈 메모장...ㅠㅠ)


이제 다시 원본 docker/docker repo로 가서,

New pull request에서 compare across forks,

fork한 repo를 선택하고,

create pull request를 합니다. 잡아먹지 않는답니다요! 아닐수도

영어는 못하지만 언어는 의사소통이라 하였더라. 애써 손짓발짓을 해봅니다.

그리고 지릅니다.


4. Pull Request 그리고 나서...

PR 날렸더니 ... 오잉 이게 모람. GordonTheTurtle 아저씨가 친절하게 뭔갈 알려줬다. 이대로 해봅시다.
아 ... 모든 커밋 메시지에 저게 들어가야 한다는 거구나;;
우...우렁거북이세여 ;; (사람이 아니고 봇같아요 거북이봇.)

흔한 거북의 예

아아 친절해 ㅜㅜ 집앞 맥도날드 알바분보다 더 ㅜㅜ




푸시하려면 빌드테스트를 하고 하는 것이 마땅하거늘, 요즘엔 travis-ci나 jenkins같은 빌드시스템이 이것을 관리해줍니다! 키야 주긴다잉


기다립니다.

오 사람이 나타났습니다!


vendor는 import된거기때문에 합치지는 않을거니까 docker/libkv로 가보랍니다. 귀여운 이모티콘과 함께..
무를 뺐으면 칼이라도 썰어야지!
가자!
갑니다.

똑같이 (이제는 amend를 빼먹지 말고... 적용된 모습이 보입니까? 물론 이건 repo 정책에 따라 다릅니다!)


빌드 성공!


또 기다립니다.

주의: 자다가 일어났는데 메일이 왔으면 설렐 수 있습니다.

아앗 머지됐어

드디어 메일이 왔습니다! LGTM(Looks good to me)!!!


이러면 저도 14명의 컨트리뷰터 중 한 명!(;;)
(물론 전 아직도 잡아먹히지 않았습니다.)

위와 관련하여 좋은 말씀이 있어 나누고자 합니다.(?)
Naver Labs 이형규님의 "Contributing to Docker": http://www.slideshare.net/HyeongKyuLee/docker-contribution-slideshare-38684955


5. 마치며

참 쉽죠??
이러한 주석 수정 등의 활동이 오픈 소스 활동으로 인정받을 수 있느냐라는 논란이 제기되곤 합니다. 그리고 위는 뭔가 꼼수를 부린 것 같이 찝찝한 느낌이 들 수도 있다고 생각합니다.
하지만 천 리 길도 한 걸음부터라고 하듯, 사소한 움직임이 변화의 시작!입니다. (게다가 대부분의 커미터들은 좋아합니다. 물론 예를 갖추어 ... 커미터는 컨트리뷰터를 무조건 좋아해!는 도끼병입니다)
이런 소소한 활동이 세상의 소프트웨어와 여러분들의 일상에 변화를 줄 수 있기를 바랍니다. ^_^

김태희, http://github.com/KimTaehee


No comments:

Post a Comment