티스토리 뷰
본 포스트에서는 제출한 변경사항을 수정하는 방법과, 제출한 변경사항이 병합되는 과정을 살펴보겠습니다.
본 포스트는 변경사항을 이미 한 번 제출했다고 가정합니다.
리뷰 확인하기
우리가 제출한 변경사항에 대해서 코멘트가 달렸네요! 한 번 살펴봅시다.
먼저, 7번 패치셋을 제출하고 나서, Zuul로부터 Verified +1을 받았습니다. 즉, 빌드 테스트가 성공했다는 뜻입니다.
그다음으로 Lajos Katona와 Slawek Kalponski로부터 코멘트를 받았네요. 한 번 클릭해서 자세하게 살펴보겠습니다.
위 사진은 제가 작성한 커밋 메시지입니다. 노란색으로 하이라이트 된 부분에 달린 코멘트들을 한 마디로 요약하자면, '커밋 메시지를 이렇게 작성하지 마라'가 되겠네요... 하하 (쓴웃음)
다음으로는 제가 실제로 작성한 코드를 살펴봅시다.
코드를 살펴보기 전, 빨간 상자를 확인해주세요. 각 빨간 상자를 보시면 패치셋에 대한 번호가 있습니다. 이를 통해 각 패치의 변경 사항을 살펴볼 수 있습니다. 왼쪽에 보이는 부분은 Base 패치이고, 오른쪽은 7번 패치입니다. 즉, Base 패치부터 7번 패치까지 어떻게 변화되었는지 한눈에 확인하는 확인할 수 있습니다. 오른쪽은 7번 패치에서 달린 코멘트입니다.
위에서 달린 코멘트를 한 줄로 요약하자면, '이렇게 하는 방법 말고 다른 방법 없어? ~~ 이렇게 말이야'가 되겠네요. 그 부분에 제가 이해가 되지 않는 부분이 있어서 질문을 했고, 이에 또 다른 리뷰어가 코멘트를 달아주었네요. 두 명의 핵심 리뷰어의 리뷰를 통해 어느 정도 방향이 잡혔으니, 제출한 변경사항을 수정하고 다시 제출해봅시다.
제출한 변경사항 수정하기
우리는 이미 변경사항을 제출하기 위해 브랜치를 생성하고, 그 브랜치에서 작업했습니다.
다행히 우리가 이전에 작업하던 bug/1857035 브랜치 그대로 있네요. 그럼 위에서 리뷰어들이 조언해준 대로 코드를 수정하고 아래의 명령어를 입력해봅시다.
$ git commit --amend
리뷰어들이 조언해준 대로 코드와 커밋 메시지를 수정하고 변경사항을 저장합니다. 여기서 주의해야 할 점은, Closes-Id 줄을 수정하면 안 됩니다. 이는 Gerrit이 커밋을 구분하기 위한 해쉬를 포함하고 있기 때문에, 이 태그가 포함된 줄을 수정해버리면 Gerrit이 우리의 변경사항을 추적할 수 없게 됩니다.
커밋이 끝난 후, 리뷰를 위해 아래의 명령어로 Gerrit에 제출합니다.
$ git review
변경사항 병합하기
위의 과정을 반복하면서 패치를 진행하다 보면, 아래와 같이 핵심 리뷰어들로부터 +2점의 코드 리뷰 점수 또는 +1점의 Workflow 점수를 받을 수 있습니다. (이와 관련한 정보는 여기를 확인해주세요)
2명의 핵심 리뷰어들로부터 코드 리뷰 +2점과 Workflow +1점을 받았으니 이제 곧 머지가 될 것 같네요!
그런데 이게 무슨 일인가요?
Recheck
첫 번째 빨간 상자처럼 빌드 테스트가 실패했네요. 저는 제 코드에 문제가 생긴 줄 알았지만, 이에 대해서 알아보니 Zuul이 OpenStack의 모든 프로젝트에 대해 여러 빌드 테스트를 동시에 진행하면서, 서버 환경에 잠재적인 에러를 유발할 수 있다고 합니다. 이와 같은 경우엔, 그냥 recheck라는 코멘트를 달면 Zuul은 다시 빌드 테스트를 실행합니다. 위의 사진에서 확인할 수 있다시피, 빌드 테스트가 성공하면 게이트 작업을 실행합니다. 이 게이트 작업을 통과하면 최종적으로 우리의 변경사항이 병합됩니다.
하지만 이게 쉬운 일은 아닙니다. 한 번의 빌드 테스트가 끝나기까지 서버의 상황에 따라 다르겠지만, 저는 대개 6시간 정도 걸렸던 것 같습니다. 저는 자주 빌드 테스트를 실패했습니다. 아래는 제가 매번 테스트에 실패하면서 recheck 코멘트를 단 흔적입니다.
Verified +2
Zuul이 빌드 테스트부터 게이트 작업까지 성공적으로 완료한다면 우리가 제출한 변경사항은 자동적으로 해당 프로젝트의 master 브랜치로 병합됩니다. 이와 동시에, Zuul은 해당 변경사항에 대해서 Verified +2점의 점수를 부여합니다. 아래는 제가 마지막 패치셋에서 받은 리뷰 점수들입니다. (Rodolfo Alonso Hernandez 씨의 리뷰 점수는 이전의 패치셋에서 받았습니다.)
Github
우리가 제출한 변경사항이 잘 병합되었는지 확인하기 위해서 Github의 OpenStack 프로젝트 레포지토리에서 확인할 수 있습니다. (제 경우는 openstack/neutron입니다.)
축하합니다! 드디어 OpenStack에 첫 기여를 끝내셨네요!
저에게는 한 달이라는 긴 시간이었지만, 그 과정들을 이렇게 정리하면서 저뿐만 아니라 다른 사람들에게도 도움이 되고자 글을 남깁니다.
후에 OpenStack에 contribution을 하고자 하시는 분들께 많은 도움이 되면 좋겠네요.
정말 긴 글 읽어주셔서 감사합니다.
'Cloud Computing > Openstack' 카테고리의 다른 글
[OpenStack에 contribute하기 - 6] 실전 (2) (0) | 2020.01.27 |
---|---|
[OpenStack에 contribute하기 - 6] 실전 (1) (0) | 2020.01.27 |
[OpenStack에 contribute하기 - 5] Gerrit 사용하기 (2) (0) | 2020.01.20 |
[OpenStack에 contribute하기 - 5] Gerrit 사용하기 (1) (0) | 2020.01.05 |
[OpenStack에 contribute하기 - 4] Gerrit Account 구성하기 (0) | 2019.12.29 |
- Total
- Today
- Yesterday