GitLab 개발에 기여하기
GitLab에 기여에 관심을 가져 주셔서 감사합니다. 이 안내서는 GitLab의 개발에 기여하는 방법에 대해 안내합니다.
처음부터 단계별 가이드는 튜토리얼: GitLab 기여하기를 참조하십시오.
기여 방법
- 행동 강령서를 읽으십시오.
- 작업할 문제를 선택하거나 만드십시오.
- GitLab 개발 키트를 설정하십시오.
- Merge Request을 엽니다.
Merge Request이 처리되고 검토되면 제품에 통합될 수 있습니다.
행동 강령서
저희는 기여에 관심 있는 모든 사람들을 위해 환영받는 분위기를 조성하고자 합니다. 오픈하고 환영받는 분위기로의 헌신에 대한 자세한 정보는 행동 강령 페이지를 참조하십시오.
문제와 Merge Request은 영어로 작성되어야 하며 모든 연령대에 적합한 언어를 포함해야 합니다.
GitLab 기술
GitLab은 루비 온 Rails 애플리케이션입니다. Haml 및 Vue.js를 사용하는 JavaScript 기반 프론트엔드를 사용합니다.
일부 위성 프로젝트는 Go를 사용합니다. 예를 들면:
우리는 각 기술에 대한 개발 스타일 가이드를 갖고 있어서 당신이 저희의 코딩 표준에 부합하도록 돕습니다.
문제 선택 또는 생성
해결할 작업을 이미 알고 있다면 문제가 있는지 확인하십시오. 그렇지 않으면 새 문제를 엽니다. 적절한 템플릿을 선택하고 수행할 작업에 대한 모든 필요한 정보를 추가하십시오. 이렇게 하면 GitLab 팀 멤버들로부터 더 많은 지침과 지원을 받을 수 있습니다.
무엇을 할지 확신이 없다면 ~Seeking community contributions
및 ~quick win
라벨이 있는
이슈를 확인하십시오.
문제를 찾으면 해당 문제에 댓글을 남기십시오. 이렇게 하면 GitLab 팀과 넓은 GitLab 커뮤니티의 구성원들이 당신이 해당 문제에서 작업할 것임을 알 수 있습니다.
세부 정보는 이슈 워크플로우를 참조하십시오.
GitLab 개발 키트 설정
코드 작성 및 테스트를 위해 GitLab Development Kit을 사용하게 됩니다.
- 접근 권한 요청을 하여 GitLab 커뮤니티 fork에 대한 접근 권한을 얻거나, 자체 공개 fork를 만들 수 있지만 커뮤니티 fork의 혜택을 놓치게 될 수 있습니다.
- 일부 GitLab 프로젝트는 리포지터리의 README 또는 CONTRIBUTING 파일에 자세한 기여 가이드가 있습니다. 개발 환경을 설정하기 전에 이러한 파일을 검토하는 것이 좋습니다.
- 다음 중 하나를 수행하십시오:
-
지역에서 개발 환경을 실행하려면 GitLab Development Kit을 다운로드하고 설정을 참조하십시오. 문제가 발생하면 Troubleshooting을 참조하십시오.
-
GDK는 무겁습니다. 빠르게 무언가를 구축해야 하는 경우, 실험을 거쳐 빈 rails 앱을 사용하고 이후에 GDK로 이식하는 경우를 고려하십시오.
-
클라우드에서 사전 구성된 GDK 인스턴스를 실행하려면 GDK with Gitpod를 사용하십시오. 프로젝트 리포지터리에서:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾으십시오.
- 오른쪽 상단에서 편집 > Gitpod을 선택하십시오.
-
- 웹 사이트 또는 핸드북에 기여하고 싶다면, 페이지 하단으로 이동하여 웹 IDE에서 편집을 선택하십시오.
Merge Request 열기
이제 Merge Request을 엽니다 고 코드 및 해당 문서를 Merge하십시오. Merge Request을 조기에 열수록 빠른 피드백을 받을 수 있습니다. 아직 완료되지 않았음을 알리기 위해 임시로 표시할 수 있습니다.
- Merge Request에서 변경 사항을 소개하는 이유와 해당 Merge Request이 닫히거나 수정하려는 문제에 대한 링크와 같은 템플릿에서 요청하는 모든 정보를 입력하십시오.
- 필요한 경우 테스트를 추가하고 변경 로그 항목을 추가하십시오.
- 변경 사항이 사용자나 관리자에게 영향을 미치는 경우, 문서를 업데이트하십시오.
세부 정보는 Merge Request 워크플로우를 참조하십시오.
커뮤니티 Merge Request이 어떻게 처리되나요?
- Merge Request을 생성하면
@gitlab-bot
은 자동으로 “~Community contribution” 라벨을 적용합니다. - Merge Request을 생성한 후 24-48시간 내에 Merge Request 코치가 Merge Request을 검토하고 stage, group 및 type 라벨을 적용합니다.
- Merge Request이 자동으로 지정되지 않았다면, 코멘트에서
@gitlab-bot ready
를 입력하여 리뷰를 요청하십시오. 초기 제출 후 2일 이내에 리뷰어가 지정되지 않았다면@gitlab-bot help
로 도움을 요청할 수 있습니다. - Merge Request 코치는 관련 리뷰어를 할당하거나 가능한 경우 리뷰를 처리할 것입니다.
Merge Request은 리뷰어가 지정된 후 일주일 이내에 리뷰되도록 할 목표입니다. 때로는 업무 부담, 휴가 또는 기타 이유로 인해 더 오랜 시간이 걸릴 수 있습니다. 필요할 경우, 코드 유형에 특화된 Merge Request 코치를 팀 페이지에서 찾아서 Merge Request에 언급하십시오. 예를 들어, 프론트엔드 코드를 작성했다면 프론트엔드 Merge Request 코치를 언급해야 합니다. 코드에 여러 분야가 포함되어 있다면 여러 Merge Request 코치를 언급할 수 있습니다.
시간표 및 도움을 요청하거나 Merge Request을 에스컬레이션하는 방법에 대한 자세한 내용은 넓은 커뮤니티 Merge Request 가이드를 참조하십시오.
Merge Request이 검토되고 Merge되면 변경 사항이 GitLab.com에 배포되며 다음 릴리스에 포함될 것입니다!
검토 프로세스
GitLab에 코드를 제출하면 실제로 Merge되기를 원합니다! 그러나 우리는 항상 신중하게 제출물을 검토하며, 이는 시간이 소요됩니다. 코드 제출물은 일반적으로 Merge되기 전에 두 도메인 전문가에 의해 검토됩니다.
검토 후, 검토자는 작성자에게 Merge Request을 업데이트하도록 요청할 수 있습니다. 이 경우 검토자는 ~"workflow::in dev"
라벨을 설정할 것입니다.
한번 Merge Request이 업데이트되고 다시 검토를 위해 준비되면(예: @gitlab-bot ready
로), 그들은 다시 코드를 검토할 것입니다.
이 프로세스는 Merge되기 전까지 여러 번 반복될 수 있습니다. 이는 기여물을 최상의 상태로 만들기 위해 도움이 됩니다.
마지막으로, Merge Request을 제출할 때 다음 사항을 유의하세요:
- 검토자가 Merge Request을 검토하는 동안, 다른 검토자로부터 지도를 요청할 수 있습니다.
- 코드 품질이 GitLab 표준을 충족하지 못할 경우, Merge Request 검토자는 안내를 제공하고 작성자를 다음 항목으로 안내할 것입니다:
- 문서 스타일 가이드.
- 코드 스타일 가이드.
- 때로는 스타일 가이드가 따라지지만 코드의 구조적 무결성이 부족하거나 검토자가 코드의 전반적인 품질에 대한 우려가 있을 수 있습니다. 우려사항이 있을 경우, 검토자는 작성자에게 통보하고 일부 지도를 제공할 것입니다.
- GitLab은 일반적으로 누구든지 Merge Request에 대한 승인을 표시할 수 있지만, 유지보수자는 Merge Request을 Merge하기 전에 특정 검토자의 승인을 필요로 할 수 있습니다.
- 때로는 유지보수자가 Merge Request을 닫기로 선택할 수 있습니다. 그들은 왜 Merge되지 않을 것인지와 일부 지도를 완전히 공개할 것입니다. 유지보수자들은 코드를 변경하여 승인되고 나중에 Merge될 수 있도록 어떻게 변경할지에 대한 토론에 개방적일 것입니다.
팁
- 작은 MR은 우수한 검토의 주요 열쇠입니다.
- 처음으로 시작하기 전에 기여자를 위한 Merge Request 가이드라인을 읽어보세요.
- 자동화된 테스트가 필요합니다. 다양한 테스트 수준을 이해하고 그에 맞게 적용하세요.
- 구현을 재현하는 단계를 포함한 훌륭한 설명을 갖도록 해주세요.
- 커밋 메시지 가이드라인을 준수하기 바랍니다.
이슈 및 Merge Request 종료 정책
- 이슈를 종료하는 기준은 이슈 triage 핸드북 페이지를 참조하세요.
- Merge Request을 종료하는 기준은 Merge Request 워크플로우를 참조하세요.
Premium/Ultimate 기능에 엔터프라이즈 에디션 라이선스로 기여하는 방법
유료 티어 내에 있는 GitLab 기능 또는 EE 폴더에 존재하는 코드에 작업하려면 GitLab 엔터프라이즈 에디션 라이선스가 필요합니다. 문서화된 프로세스에 따라 엔터프라이즈 에디션 개발자 라이선스를 요청해주세요.
도움 받기
GitLab에 기여하는 동안 도움이 필요한 경우:
- Merge Request에 도움이 필요하거나 검토자를 찾는데 도움이 필요한 경우:
-
GitLab Community Discord에서 커뮤니티에 가입하여
#contribute
채널에서 다른 기여자들을 만나거나 멘토 세션을 시작할 수 있습니다. - 기여에 대한 기타 질문이나 피드백이 필요한 경우:
- Merge Request이나 이슈에 댓글에서
@gitlab-org/developer-relations/contributor-success
를 언급하세요. - 경험을 공유하는 Contributor Success 팀에 새 이슈를 작성할 수 있습니다.
- Merge Request이나 이슈에 댓글에서
- GitLab Merge Request의 컴퓨팅 시간이 부족한 경우? GitLab 커뮤니티 forks 프로젝트에 참여하세요.