깃허브 디스커션
디스커션은 이슈를 더 많이 사용하긴 하지만, 논의를 할때 사용한다.
굳이 비교하자면 이슈는, 해당 프로젝트에 관련된 사람들이 많이 이용한다면, 디스커션은 크게 연관이 없는사람들도 함깨 참여한다는 차이정도가 있다.
오픈 소스 구성원 역할
- 저작자 : 오픈 소스 프로젝트를 만든 사람 혹은 조직
- 메인테이너 : 프로젝트의 방향을 알고있고, 직접 설정했거나 관리하는 사람
- 컨트리뷰터 : 오픈 소스 프로젝트에 컨트리뷰션(기여) 활동을 하는 모든 사람
- 커미터 : 컨트리뷰터가 컨트리뷰션을 하면 리뷰를 하는 컨트리뷰터로, 프로젝트에 반영을 할지 말지 결정한다.
- 사용자 : 오픈 소스 프로젝트를 사용하는 사람
컨트리뷰션
컨트리뷰션 활동 유형
- 버그 픽스
- 문서화/제안
- 리팩토링
- 버전 업데이트
- 테스트 케이스 추가
- 기능 추가/수정/삭제
- 오타 수정
- 버그 수정,제안
- 번역, 번역 제안
- UI/UX 제안
- 리소스 사용량 증가 등..
컨트리뷰션을 하는 이유?
오픈소스 저작자
- 컨트리뷰터들이 버그를 찾아줌
- 사용하면서 불편한 점, 개선할 코드 등 혼자서 찾을 수 없는 사항들을 찾아줌
오픈소스 사용자/컨트리뷰터
- 다른 개발자들에게 리뷰를 받을 수 있다
- 사용자라면, 사용하면서 불편한 부분 해결 가능
- 코드를 보는 시선, 관점이 늘어나 코드 퀄리티를 높일 수 있다.
- 코드 분석을 하며 코드 문해력 증가
- 협업 경험, 성취감
OSS(오픈 소스 소프트웨어)
소스 코드 공개 + 라이선스 => 소프트웨어
주로 공공 기관에서 많이 사용한다.
컨트리뷰션 주의사항
커뮤니케이션 : 태도, 자세, 말투, "겸손"
소스 코드 충돌
- Contribute 하고 싶은 내용을 이미 구현하고 있진 않은지, 혹은 구현하지 않기로 한건 아닌지 먼저 파악한다.
- 시작하기 전에 미리 작업을 할 내용을 알리는 것이 좋다.(이슈 오픈 or 디스커션이용)
- 너무 오래전에 오픈된 issue가 있을 경우, 커뮤니티나 디스커션에서 문의를 하는것이 좋다.
- 너무 오래되었거나, 작업하지 않는 이슈를 정리하는것 또한 일종이 컨트리뷰션이다.
새로운 큰 기능을 추가하고 싶을 때
- 먼저 기능추가에 대한 의견을 듣는다.
- 내부적으로 팀원을 모집하는것 또한 좋은 방법
Pull Request를 보낼때
- 템플릿이 존재하면, 템플릿에 따라 Pull Request를 보낸다.
컨트리뷰트 절차
- 오픈소스 프로젝트를 Fork한다.
- 내 로컬로 프로젝트를 Clone한다.
- 코드 컨벤션, 커밋 메시지 규칙 등 코드 구현전 확인해야하는 규칙을 체크
- 코드 구현, 수정 + 주석 수정 + 커밋
- 내 레포지토리로 Push한다.
- 원래 프로젝트에 Pull Request 요청을 보낸다.
- Contribute License에 동의
- 리뷰어, 커미터, 저작자 등에게 검토를 요청한다. (검토 생략후 바로 Merge되는 경우도 있다.)
- Merge완료(Contributer 리스트에 추가)