CUBRID Contributor 되기

개발새발·2022년 1월 27일
0
post-thumbnail

1. CUBRID Contribution Guideline

CUBRID는 JIRA를 사용하여 프로젝트를 관리하며 모든 변경사항은 이슈를 단위로 하여 관리한다. JIRA 이슈는 진행 상황에 따라 아래 그림과 같이 7가지의 상태 (OPEN, CONFIRMED, IN PROGRESS, REVIEW IN PROGRESS, REVIEWED, RESOLVED, CLOSED) 를 가지며, 이슈 진행 상황에 따라 상태를 변경하여 관리합니다. 처음 이슈를 생성하면 “OPEN” 이고, “CLOSED” 로 모든 기여 작업이 완료된다.

CUBRID 개발 프로세스는 다음 두 도구를 기반으로 운영된다.

  • Issue Tracking : JIRA (jira.cubrid.org)
  • Code Repository and Code Review : Github (github.com/CUBRID)

CUBRID의 모든 프로젝트, 기능추가, 버그수정은 JIRA 이슈 생성으로부터 시작한다. JIRA의 Issue workflow에 따라 문제를 정의, 분석하는 단계를 지나 설계 및 구현을 시작하게 된다. 설계 및 구현 단계에서는 Github에서 브랜치 생성, Pull Request, 코드 리뷰를 통해 검토/검증 과정을 거친 후 CUBRID에 코드를 반영한다.

2. Workflow (JIRA & GITHUB)

  1. jira.cubrid에 접속해 로그인한다. (계정이 없으면 Sign up)

  1. 로그인 후 "Create" 버튼을 클릭해 새로운 이슈를 만든다.

  1. Contribution Guidelines을 참고해 이슈 작성 절차를 따라 양식에 맞게 항목을 채워 넣고 Create한다.

  1. 프로젝트 메인테이너가 “Open” 상태에서 이슈 진행 선별 과정(Triage)를 통해 “Confirmed” 상태로 바꿔준다.

  1. 이슈를 생성한 후 담당자로 지정받아 최종적으로 CUBRID Contributor가 되시기 위해서는 권한(인증)이 필요하다. CUBRID 홈페이지의 contributor agreement를 참고하여 아래 절차를 진행하여 ICLA 권한을 획득한다.

  1. Github의 CUBRID 레포를 Fork한다.

내 레포로 Fork된 상태

  1. 로컬에 Fork된 레포를 클론받는다.

  1. 할당된 이슈번호로 새로운 브랜치를 만들고 코드를 수정하고 정상적으로 빌드가 되는지 확인한다.

  1. 이상이 없으면 push한다.

  1. Push한 브랜치 -> CUBRID/develop 브랜치로 pull request를 보낸다.

  1. Pr-Guide를 참고해 양식대로 내용을 구성해 pull request를 생성한다.

  1. Pull request가 정상적으로 open되었음을 확인한다.

  1. 효과적/효율적인 코드 리뷰를 위해 Github PR에 여러 자동화 도구들을 도입하고 있다. 이 도구들은 코드의 품질을 높이고 리뷰어가 단순 실수가 아닌 설계 디자인과 로직 문제에 집중할 수 있도록 도와준다. Pull Request 하단에 각 자동화 도구의 성공여부가 표시되고, Details를 통하여 자세한 정보를 확인할 수 있다. 하나라도 실패가 있다면 PR을 반영하는 “Squash and Merge” 버튼이 비활성화 된다.

  1. 자동화 도구에서 모두 검증되었고, 리뷰어가 모두 “Approved” 한 경우에 머지가 진행된다.

  1. Pull Request를 생성하면 Github hook을 통해 JIRA에서 자동으로 “IN PROGRESS” 상태로 변경된다. Review 준비가 되었을 경우 “Submit a fix” 버튼을 눌러 “REVIEW IN PROGRESS” 상태로 변경한다.

  2. 리뷰를 정상적으로 받았다면 "Acccpt the fix" 버튼을 누른다. 해당 Pull Request에 대하여 Review를 완료하고 반영(merge)되면 Github hook을 통해 JIRA에서 자동으로 “REVIEWED” 상태로 변경된다.

  1. 리뷰가 완료 (“REVIEWED”) 된 이후에 “Check-in Fix” 버튼을 눌러 항목을 작성한다.

"Check-in Fix" 작성 항목

  1. "Check-in Fix"를 통해 이슈를 “RESOLVED” 상태로 변경하고, 해당 이슈를 QA 메인테이너에 이관한다.

3. 내 Issue 및 PR

나는 총 2개의 이슈를 할당받아 해당 2개의 이슈 모두 정상적으로 완료해 코드를 머지시켰다.

첫 번째 이슈
첫 번째 PR
두 번째 이슈
두 번째 PR

3달간의 스터디를 통해 DB엔진을 직접 분석하며 많은 걸 배웠고 직접 오픈소스에 기여할 수 있는 값진 기회도 얻게 되어 힘들었지만 유익했다.

CUBRID Contribution Guidelines

profile
블록체인 개발 어때요

0개의 댓글