1. Sejong System Engineering Laboratory
koain@naver.com
Kim Young Woo
OpenStack에 Contribution 하는 법
OpenStack Korea Community
2016 fall upstream training study
2017-02-101
5. 프로젝트 IRC 채널 참여하기 (https://wiki.openstack.org/wiki/IRC 에서 채널과 IRC 로그들 확인 가능)
• IRC 클라이언트 이용 (network : freenode, channel : 위 링크에서 선택)
• 예)
1. https://hexchat.github.io/downloads.html 에서 IRC Client 다운, 설치
2. Nickname, username 입력 후 freenode network로 connect
2017-02-105
IRC 참여하기
6. 프로젝트 IRC 채널 참여하기 (https://wiki.openstack.org/wiki/IRC 에서 채널과 IRC 로그들 확인 가능)
• IRC 클라이언트 이용 (network : freenode, channel : 위 링크에서 선택)
• 예)
3. Server -> Join Channel 클릭 후 원하는 channel 입력
2017-02-106
IRC 참여하기
7. 프로젝트 IRC 채널 참여하기 (https://wiki.openstack.org/wiki/IRC 에서 채널과 IRC 로그들 확인 가능)
• IRC 클라이언트 이용 (network : freenode, channel : 위 링크에서 선택)
• 예)
2017-02-107
IRC 참여하기
9. 1. Openstack foundation 계정 만들기 (https://www.openstack.org/join/ 에서 가입 가능)
1. Community Member가 아닌 Foundation Member로 가입
2017-02-109
Contribution을 위한 계정 등록
2. Gerrit 이용을 위한 Ubuntu one 가입하기 (http://launchpad.net/ 에서 가입가능)
1. http://review.openstack.org 에 로그인
2. 오른쪽 위의 아이디 클릭 -> settings -> username 생성
3. 왼쪽 메뉴에서 agreements에서 ICLA 동의
4. Contact Information에서 save changes 클릭 (Contact Information last updated on ~~ 문구가 나와야 함)
5. SSH Public Keys에 SSH 키 등록
참고
• Gerrit 이란 ? (http://review.openstack.org)
• Gerrit is a free, web-based team code collaboration tool. (출처 : wiki)
• Git 과 연동해서 사용하는 코드 리뷰 툴
• Launchpad 란? (http://launchpad.net)
• Launchpad is an open source suite of tools that help people and teams to work together on software projects. (출처 : launchpad 홈페이지)
• 버그 리포팅, 할당, 수정, 추적 등을 통해 버그들을 관리 하는 툴
• 오픈스택의 공식 저장소는 git.openstack.org 지만 github.com/openstack 에도 미러링 됨. Gerrit의 email과 github email이 동일하면
컨트리뷰션 내용이 github에 연동됨
10. 2017-02-1010
Contribution을 위한 계정 등록
Gerrit에 ssh key 등록하기
1. Ssh key 생성
1. $ ssh-keygen
2. 계속 엔터
2. Ssh 공개 키 복사
1. $ cd ~/.ssh
2. $ cat id_rsa.pub
3. 출력된 공개 키 복사
11. 2017-02-1011
Contribution을 위한 계정 등록
Gerrit에 ssh key 등록하기
3. gerrit에 등록
1. http://review.openstack.org 접속/ 로그인
2. 우측 상단에 계정 클릭, Settings 클릭
3. 좌측 메뉴중 SSH Public Keys 클릭, Add key 클릭
4. 복사한 공개 키 붙여넣기 후 Add 클릭
13. 일반적인 Github workflow
2017-02-1013
일반적인 Github Workflow vs OpenStack Contribution Workflow
Origin
저장소
내 저장소
1. fork
Local
2. Clone
Github
내 저장소
3. Branch 생성 후 작업
5. Push
4. Local에 Commit
6. Pull Request 승인 후 merge
14. OpenStack Contribution Workflow
2017-02-1014
Origin
저장소
Local
1. Clone
Openstack Git Repository
내 저장소
2. Branch 생성 후 작업
4. git-review로 gerrit에 push
3. Local에 Commit
Gerrit
Patch
5. Jenkins, Community
member에 의한 review
및 테스팅
6. Review 반영 및 충돌 해결
7. Merge
일반적인 Github Workflow vs OpenStack Contribution Workflow
18. 4. Launchpad에 버그 등록하기
1. http://bugs.launchpad.net/openstack-dev-sandbox 접속, 로그인
2. 우측 상단의 Report a bug 클릭 후 bug summary 입력
2017-02-1018
Sandbox에 Commit 해보기
19. 4. Launchpad에 버그 등록하기
3. Bug에 대한 추가 정보 입력 후, Submit Bug report
4. Bug를 내가 해결하겠다.! 나에게 할당
2017-02-1019
Sandbox에 Commit 해보기
• Bug 번호
• Commit Message에 입력해 gerrit과 Launchpad를 상호 참조하게 만들 수 있음
20. 5. Sandbox에서 버그 수정하기 (이 예에서는 단순 파일 추가)
1. $ git checkout –b sandbox-bugfix-test (Sandbox 저장소에서 브랜치 생성 및 변경)
2. Sandbox에 파일 추가 (이 행위가 버그를 고치는 행위라 가정)
3. $ git add “FILENAME”
4. $ git commit
2017-02-1020
Sandbox에 Commit 해보기
21. 5. Sandbox에서 버그 수정하기 (이 예에서는 단순 파일 추가)
5. 커밋 메시지 작성
6. $ git review
2017-02-1021
Sandbox에 Commit 해보기
• Commit message 작성법
• https://b.ssut.me/55
• https://wiki.openstack.org/wiki/GitCommitMessages
• Bug 상태 명시 (Gerrit에서 버그 상태를 확인할 수 있는 Launchpad 링크로 생성됨)
• Closes-Bug: #~~~~ (해당 버그를 내가 모두 고쳤다.!!)
• Partial-Bug: #~~~~ (해당 버그의 일부만 내가 고쳤다. 누군가 더 고쳐줘!!)
• Related-Bug: #~~~~ (이 Commit과 관련된 버그를 표시)
• 해당 URL에 접속하면 gerrit에 커밋이 등록된 것을 확인할 수 있다.
22. 6. Gerrit 에서 코드 리뷰 받기
1. gerrit URL 접속, reviewer 추가 (제 commit review 좀 해주세요~)
2. launchpad에서 버그 상태 확인 가능
2017-02-1022
Sandbox에 Commit 해보기
23. 6. Gerrit 에서 코드 리뷰 받기
3. reviewer가 코드 리뷰
4. Commit이 merge (일반적으로 Code-Review +2 두번, Workflow +1 이면 머지됨. Luanchpad 에서 버그 상태 확인 가능)
2017-02-1023
Sandbox에 Commit 해보기
24. 6. Abandon된 commit 수정하기 (abandon은 자기 자신 또는 +2 권한이 있는 사람만 가능)
1. Commit 할 내용 수정
2. git add . && git commit -a --amend
3. git review
2017-02-1024
Sandbox에 Commit 해보기