[Go 공식문서 한국어 정리] ⑯32. Go 프로젝트에 기여하기
[Go 공식문서 한국어 정리] ⑯32. Go 프로젝트에 기여하기
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 서론
이 문서는 Go 오픈소스 프로젝트에 기여하는 방법을 안내합니다. Go 팀은 Gerrit을 사용해 코드 리뷰를 진행합니다.
2. 핵심 개념
• CLA(Contributor License Agreement): 기여자 라이센스 계약을 체결해야 합니다.
• Gerrit: Go 팀이 사용하는 코드 리뷰 도구입니다.
• git-codereview: Gerrit에 변경사항을 제출하는 데 필요한 도구입니다.
• 대부분의 변경은 GitHub 이슈와 연결되어야 합니다.
3. 주요 내용 상세
3.1 기여자 등록
• Google 계정을 준비하고 git의 user.email을 해당 계정으로 설정
• CLA 체결: 개인이나 기업이 소유권자에 따라 개인/기업 CLA를 체결
• go.googlesource.com에서 비밀번호 생성하여 git 인증 설정
• go-review.googlesource.com에서 Gerrit 계정 등록
• git-codereview 설치: go install golang.org/x/review/git-codereview@latest
3.2 코드 기여 전
• 중요한 변경은 무엇인지 필요한지 알아보기: 이슈 트래커를 확인합니다.
• 원본 저장소: go.googlesource.com/go (GitHub이 아님)
• 6개월 개발 주기: 후반 3개월은 기능 동결(버그수정과 문서업데이트만 받읍)
• 어떤 변경이든 GitHub 이슈와 연결해야 함
3.3 변경 제출 과정
• 저장소 클론: git clone https://go.googlesource.com/go
• 빌드 확인: cd go/src → ./all.bash
• 새 브랜치에서 작업: git checkout -b mybranch
• 커밋: git codereview change (gofmt, 커밋 메시지 포맷 자동 검사)
• 전체 테스트: ./all.bash 또는 go test ./...
• Gerrit에 제출: git codereview mail
3.4 커밋 메시지
• 첫 줄: 패키지명: 요약(예: math: improve Sin precision)
• 둘째 줄은 빈 줄로 구분
• 설명: 완전한 문장으로, 약 72컬럼에 줄바꿈
• 이슈 참조: Fixes #12345 또는 Updates #12345
• x/ 저장소에서는 Fixes golang/go#12345 형식을 사용
3.5 리뷰 과정
• 리뷰어는 +1(승인의여, 소수 수정), +2(최종 승인)를 투표합니다.
• 유지보수자의 +2가 있어야 머지됩니다.
• 리뷰 코먼트링에 모든 코먼트에 대한 응답이 필요합니다.
• 수정 후 git codereview change → git codereview mail로 재제출
• 트라이봇: 여러 아키텍처에서 전체 테스트를 실행한 결과를 보여줍니다.
3.6 빠른 테스트
• 베이스에 변경한 패키지만 테스트: go test .
• 컴파일러만 빌드: make.bash
• 테스트만 실행: run.bash
• 내부 도구 수정 후 테스트: go install cmd/compile → go test
4. 실전 활용
• go-contrib-init을 사용하여 기여자 설정을 자동화할 수 있습니다.
• 이슈를 먼저 확인하고 당신이 작업할 내용을 알립니다.
• 변경은 한 브랜치에 한 커밋으로 유지합니다.
• 리뷰를 받은 후 수정사항을 반영하여 재제출합니다.
5. 정리
• Go 프로젝트에 기여하려면 CLA, Gerrit 계정, git-codereview가 필요합니다.
• 변경은 항상 이슈와 연결되어야 하며 어떤 변경이든 리뷰를 거쳐야 합니다.
• 커밋 메시지는 패키지명: 요약의 형태를 따릅니다.
• 리뷰에서 요구한 수정사항을 모두 처리하고 응답한 후 재제출합니다.
#Go #Golang #Contribute #기여 #오픈소스 #공식문서

오뉴노노 님의 최근 댓글
ㅋㅋㅋㅋㅋ 2019 01.14 잘 읽었습니다 2018 12.30 포인트가 없어서 아직 시작을 못하고있는데요! 글은 잘 읽었습니다! 포인트 쌓고 도전할거에요 2018 12.30