본문 바로가기

IT/프로그래밍

openstack contributor 도전하기

오픈스택을 공부하면서 간단한 철자 오류를 수정하고 싶어서 github에 올렸더니 contributor가 되려면 그냥 PR 하는 방법이 아닌 여러가지 단계를 거치길래 직접 시도해 본 내용을 글로 남긴다.

처음에는 일반적인 github 방식대로 Fork 한 뒤에 수정해서 PR을 했더니 PR 글 밑에 아래와 같은 답변을 줬다.

Thank you for contributing to openstack/cinder!

openstack/cinder uses Gerrit for code review.

If you have never contributed to OpenStack before make sure you have read the getting started documentation: http://docs.openstack.org/infra/manual/developers.html#getting-started

Otherwise please visit http://docs.openstack.org/infra/manual/developers.html#development-workflow and follow the instructions there to upload your change to Gerrit.

그래서 설명대로 링크를 찾아가 봤다. 그랬더니...

뭔가 엄청 많고 불친절한 영어의 압박...

내용을 읽어보면 우선 lunchpad에 계정을 등록하라고 한다.

contributer 를 위해서는 코드리뷰를 해야 하는데 코드리뷰 시스템에 사용되는 계정이 open id 를 이용하기 때문에 그걸 등록해야 한다.

lunchpad 링크로 이동해서 회원가입하자

회원가입도 했으면 이제 https://review.openstack.org/ 로 이동하자.

여기 가서 오른쪽 상단을 보면 로그인 할 수 있게 되어있다. open id 에 로그인이 된 상태면 손쉽게 로그인이 가능하다.

순서대로 진행하면 된다.

  1. 로그인 후에 오른쪽 상단의 이름을 선택하면 setting 버튼이 있다. 선택하자
  2. setting 화면에서 profile탭에 username을 등록하자. contact information은 내 개인정보를 등록하면 된다.
  3. ssh public keys탭으로 이동해서 공용키를 등록한다. 없으면 터미널에서 ssh-keygen 을 실행하면 된다.

(*공용키 생성부터 등록까지의 방법도 해당 탭에 "How to Generate an SSH Key" 라는 이름으로 잘 설명되 있다.)

  1. Agreements탭으로 이동해서 개인용 인증 라이센스를 발급 받으면 코드리뷰를 위한 기본 계정 생성 작업은 끝난다.

그 다음 부터는 맨 위에서 나온 getting-started 가이드를 보면서 다시 진행한다.

git config --global user.name xxxxx

어쩌고 라고 나오는 명령어 위치부터 시작한다. 설명 그대로 진행해서 git 전역 환경설정에 이름과 주소를 등록한다.

여기까지 했으면 이제 git-review를 설치하자 설치 방법은 자신의 환경 및 선호도에 따라서 다양하게 나와있다.

이제 여기 까지 잘 됬는지 확인을 해보자 아래의 명령어를 터미널에서 입력해 보자

아래에서 나오는 작업들은 모두 터미널에서 작업을 했다.

ssh -p 29418 {username}@review.openstack.org

{username} 위치에는 아까 코드리뷰 등록할때 만든 username을 등록해야 한다.

잘됬으면 Welcome 어쩌구 저쩌구 하는 환영의 메시지가 나온다.

그럼 이제 원하는 프로젝트를 골라서 git으로 다운받으면 된다.

git clone ssh://{username}@review.openstack.org:29418/{repo project name}

내가 원하는 프로젝트 이름을 입력했는데 안되면 해당 링크 로 들어가서 검색해 보자.

해당 repo를 다운받은 뒤에 디렉토리로 이동해서

git review -s

명령어를 입력하면, 공용키 비밀번호를 입력하라고 나올거다.

만약, 에러가 발생하면

git remote add gerrit ssh://{username}@review.openstack.org:29418/{repo project name}

를 입력해서 추가해주면 된다.

그 이후에는 아래의 명령어 입력

git remote update

우선 브랜치를 새로 생성해서 작업해 보자. 링크 참조

git checkout -b {브랜치명}

브랜치 명은 보통 bp/내용 형태로 하는듯 한데, review 사이트를 가보면 각각 다르다. 최대한 링크의 설명대로 맞춰서 작성.

코드를 다 수정했으면 그 이후에는

git commit -a

를 통해서 수정된 내역을 커밋. 커밋 로그 작성 방식은 위의 링크를 참조하자.

커밋을 하였으면 git show명령어를 이용하여 커밋이 됬는지 확인 후 git review명령어를 실행하면 된다.

그런데 아래와 같은 에러가 나오는 경우가 있다.

fatal: ICLA contributor agreement requires current contact information.

Please review your contact information:

  https://review.openstack.org/#/settings/contact

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

이런 경우는 openstack review 사이트의 setting항목에서 contact inforamtion 이 등록되어 있지 않아서 그런 경우로 해당 경로로 이동해서 간단하게 메일주소와, 국가를 입력해서 저장하면된다.

아무문제 없이 저장이 된경우 git review 명령어를 실행하면

remote: Processing changes: new: 1, refs: 1, done
remote:
remote: New Changes:
remote:   https://review.openstack.org/xxxxxx your commit msg
remote:
To ssh://yourname@review.openstack.org:29418/openstack/cinder
 * [new branch]      HEAD -> refs/publish/master/bp/branch

위와 같은 이런저런 review사이트에 등록되었다는 메시지가 나온다.(개인내용은 임의로 수정했습니다.)

하지만 contact information 저장에서 Code Review - Error server error 에러가 나온다면 해당 링크를 참조하자. openstack.org에서 계정이 등록되어있지 않아서 그렇다. review 사이트와 동일한 email 주소로 등록을 해주자.

git review 실행 후 나온 review사이트 주소로 들어가면 본인이 등록한 review글이 보이고, 처음 등록한 경우에는 reviewers 명단에 Welcome, new contributor! 라는 메시지가 나온다.

성공적으로 작동 후 결과가 나오는 데는 시간이 좀 걸린다.

다시 수정해야 하는 경우.

review시스템에 등록한 상태에서 다른 CI들과 함께 jenkins가 테스트를 한 뒤 승인을 하는데,

테스트에서 실패가 발생하는 경우 코드를 다시 수정해서 올릴 수 있다.

에러가 난 코드를 확인 한 뒤 git commit -a --amend 명령어를 이용해서 다시 커밋하고,

git review 로 review시스템에 다시 등록하면 된다.


BlogWriter