나의 첫 opensource 기여했던 경험을 적어본다.
아래의 링크는 내가 올렸던 Pull Request 다.
scapy ?
나의 첫 기여했던 프로젝트는 scapy 이다.
- scapy: python으로 작성한 packet control 라이브러리 입니다.
scapy contribution을 하게 된 계기
PIMv2 Hello, Join/Prune 패킷이 scapy 에서 지원을 하지 않아서
만들어야 되겠다고 생각했다.
내가 필요했다. (급한 사람이 만든다.)
scapy contribution 하기
1) 개발 대상이 되는 PIMv2 Hello
, Join/Prune
packet 구조가 어떻게 되는지 파악 🔍
- 지피지기는 백전백승
개발 대상에 대해서 잘아야된다.
- RFC 문서 참고하기
- pim parameter 참고하기
- .pcap 으로 확인하기
2) Contribute 방법을 파악한다. 🔍
3) scapy 프로젝트를 fork 한다.
- 나의 repo 에 scapy 프로젝트가 copy 될 것이다.
4) Prototcol 추가 하는 방법을 파악한다. 🔍
5) 개발 한다. 💻
- 나의 repo 에 copy 된 scapy 프로젝트로 commit 을 올리면 된다.
- 추후 작업이 완료되면 실제 scapy 프로젝트로 pull request 를 올려야된다.
- 이건 나의 팁인데 scapy master에 들어간 코드를 참고를 했었다. 개인적으로 도움이 많이 되었다.
6) test 를 작성한다. ✔
- scapy 에서 요구했던
.uts
를 스타일로
테스트 케이스를 추가하였고 잘 돌때까지 개발<->테스트
를 반복했다.
7) Pull Request 올리기 😖
나의 첫 Opensource 기여라서 떨렸다.
8) Feedback 받고 수정하기 🔧
minor 한 부분에 대해서 feedback 을 받아서
그 부분을 수정하였다.
9) master에 적용되다. 😆
- 나의 코드는 Release v2.4.5 버전부터 적용이 되었다.
회고 ☕
1) 나는 사실 contribution을 하기가 망설여었다.
- 오픈소스 기여하는건 처음인데 프로젝트 규모가 커서 또한 겁을 먹어었다.
- 근데 생각해보니
나도 여러 오픈소스 프로젝트를 통해서 도움을 받았으니
누군가에게 도움을 주었으면 좋겠다고 생각이 바뀌게 되었다.
- 나처럼 PIMv2 Hello, Join/Prune 기능을 원하시는 분들이 있으니 용기를 내어 보았다.
2) 해당 프로젝트의 코드를 참고할 것
- 이미 master에 올라간 코드는 approve 를 받은 코드이다.
- 올라간 코드를 참고하여 개발을 했는데
Pull Request를 별 무리 없이 통과하는데 도움이 되었다.
내가 올린 기능이 누군가에게 도움이 되었으면 좋겠다.