SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Sejong System Engineering Laboratory
koain@naver.com
Kim Young Woo
OpenStack에 Contribution 하는 법
OpenStack Korea Community
2016 fall upstream training study
2017-02-101
2017-02-102
명령어는 우분투 16.04 기준으로 작성 됬습니다.
(패키지 다운 명령어를 제외하고 별 차이 없음)
Contents
• IRC 참여하기
• Contribution을 위한 계정 등록
• 일반적인 Github Workflow vs OpenStack Contribution Workflow
• Sandbox에 Commit 해보기
• 실제 Commit 해보기
2017-02-103
2017-02-104
IRC 참여하기
프로젝트 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 참여하기
프로젝트 IRC 채널 참여하기 (https://wiki.openstack.org/wiki/IRC 에서 채널과 IRC 로그들 확인 가능)
• IRC 클라이언트 이용 (network : freenode, channel : 위 링크에서 선택)
• 예)
3. Server -> Join Channel 클릭 후 원하는 channel 입력
2017-02-106
IRC 참여하기
프로젝트 IRC 채널 참여하기 (https://wiki.openstack.org/wiki/IRC 에서 채널과 IRC 로그들 확인 가능)
• IRC 클라이언트 이용 (network : freenode, channel : 위 링크에서 선택)
• 예)
2017-02-107
IRC 참여하기
2017-02-108
Contribution을 위한 계정 등록
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에 연동됨
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. 출력된 공개 키 복사
2017-02-1011
Contribution을 위한 계정 등록
Gerrit에 ssh key 등록하기
3. gerrit에 등록
1. http://review.openstack.org 접속/ 로그인
2. 우측 상단에 계정 클릭, Settings 클릭
3. 좌측 메뉴중 SSH Public Keys 클릭, Add key 클릭
4. 복사한 공개 키 붙여넣기 후 Add 클릭
2017-02-1012
일반적인 Github Workflow vs OpenStack Contribution Workflow
일반적인 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
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
2017-02-1015
Sandbox에 Commit 해보기
• Sandbox 란 ?
• 샌드박스는 실험적 의미의 프로그램을 연결하는 곳을 지칭하기도 한다. (wiki)
• 즉, 연습용 저장소
1. git 설치하기
1. $ sudo apt install git
2. $ git config --global user.name “YOURNAME” (gerrit의 username과 동일하게 기입)
3. $ git config --global user.email “YOUREMAIL” (gerrit에 등록된 email과 동일하게 기입)
2017-02-1016
Sandbox에 Commit 해보기
2. Sandbox 저장소 클론하기
1. $ git clone git://git.openstack.org/openstack-dev/sandbox.git
3. git-review 설치하기
1. $ sudo apt install git-review
2. $ git config --global gitreview.username “USERNAME” (gerrit에 등록된 username과 동일하게 기입)
3. cd ~/sandbox (Clone 한 sandbox 저장소로 이동)
4. $ git review -s (git review setup)
5. $ git config –l (설정이 잘 됬나 확인)
2017-02-1017
Sandbox에 Commit 해보기
4. Launchpad에 버그 등록하기
1. http://bugs.launchpad.net/openstack-dev-sandbox 접속, 로그인
2. 우측 상단의 Report a bug 클릭 후 bug summary 입력
2017-02-1018
Sandbox에 Commit 해보기
4. Launchpad에 버그 등록하기
3. Bug에 대한 추가 정보 입력 후, Submit Bug report
4. Bug를 내가 해결하겠다.! 나에게 할당
2017-02-1019
Sandbox에 Commit 해보기
• Bug 번호
• Commit Message에 입력해 gerrit과 Launchpad를 상호 참조하게 만들 수 있음
5. Sandbox에서 버그 수정하기 (이 예에서는 단순 파일 추가)
1. $ git checkout –b sandbox-bugfix-test (Sandbox 저장소에서 브랜치 생성 및 변경)
2. Sandbox에 파일 추가 (이 행위가 버그를 고치는 행위라 가정)
3. $ git add “FILENAME”
4. $ git commit
2017-02-1020
Sandbox에 Commit 해보기
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에 커밋이 등록된 것을 확인할 수 있다.
6. Gerrit 에서 코드 리뷰 받기
1. gerrit URL 접속, reviewer 추가 (제 commit review 좀 해주세요~)
2. launchpad에서 버그 상태 확인 가능
2017-02-1022
Sandbox에 Commit 해보기
6. Gerrit 에서 코드 리뷰 받기
3. reviewer가 코드 리뷰
4. Commit이 merge (일반적으로 Code-Review +2 두번, Workflow +1 이면 머지됨. Luanchpad 에서 버그 상태 확인 가능)
2017-02-1023
Sandbox에 Commit 해보기
6. Abandon된 commit 수정하기 (abandon은 자기 자신 또는 +2 권한이 있는 사람만 가능)
1. Commit 할 내용 수정
2. git add . && git commit -a --amend
3. git review
2017-02-1024
Sandbox에 Commit 해보기
2017-02-1025
실제 Commit 해보기
1. Bug 찾기 – 오타 발견 !
2017-02-1026
실제 Commit 해보기
2. Bug 등록 (연습용)
3. 수정 후 gerrit에 commit
2017-02-1027
실제 Commit 해보기
4. 코드 리뷰 후 머지

Mais conteúdo relacionado

Mais procurados

[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화OpenStack Korea Community
 
오픈스택을다루는기술 집필후기
오픈스택을다루는기술 집필후기오픈스택을다루는기술 집필후기
오픈스택을다루는기술 집필후기Nalee Jang
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기영우 김
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1Ji-Woong Choi
 
[2015-05월 세미나] 파이선 초심자의 Openstack
[2015-05월 세미나] 파이선 초심자의 Openstack[2015-05월 세미나] 파이선 초심자의 Openstack
[2015-05월 세미나] 파이선 초심자의 OpenstackOpenStack Korea Community
 
오픈스택커뮤니티와기술동향
오픈스택커뮤니티와기술동향오픈스택커뮤니티와기술동향
오픈스택커뮤니티와기술동향Nalee Jang
 
[오픈소스컨설팅 뉴스레터] 2016년 1분기
[오픈소스컨설팅 뉴스레터] 2016년 1분기[오픈소스컨설팅 뉴스레터] 2016년 1분기
[오픈소스컨설팅 뉴스레터] 2016년 1분기Ji-Woong Choi
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?OpenStack Korea Community
 
Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디
Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디
Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디Ian Choi
 
오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석Jennifer Noh
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?Ian Choi
 
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 KubernetesTommy Lee
 
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...OpenStack Korea Community
 
[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기
[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기
[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기OpenStack Korea Community
 
오픈스택 커뮤니티 소개 및 기술 동향
오픈스택 커뮤니티 소개 및 기술 동향오픈스택 커뮤니티 소개 및 기술 동향
오픈스택 커뮤니티 소개 및 기술 동향Nalee Jang
 
Red Hat Enterprise Linux OpenStack Platform Overview - RHELOSP5
Red Hat Enterprise Linux OpenStack Platform Overview - RHELOSP5Red Hat Enterprise Linux OpenStack Platform Overview - RHELOSP5
Red Hat Enterprise Linux OpenStack Platform Overview - RHELOSP5Won Young Choi
 
오픈소스로 구축하는 클라우드 이야기
오픈소스로 구축하는 클라우드 이야기오픈소스로 구축하는 클라우드 이야기
오픈소스로 구축하는 클라우드 이야기Nalee Jang
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링OpenStack Korea Community
 

Mais procurados (20)

[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
 
오픈스택을다루는기술 집필후기
오픈스택을다루는기술 집필후기오픈스택을다루는기술 집필후기
오픈스택을다루는기술 집필후기
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
 
[2015-05월 세미나] 파이선 초심자의 Openstack
[2015-05월 세미나] 파이선 초심자의 Openstack[2015-05월 세미나] 파이선 초심자의 Openstack
[2015-05월 세미나] 파이선 초심자의 Openstack
 
오픈스택커뮤니티와기술동향
오픈스택커뮤니티와기술동향오픈스택커뮤니티와기술동향
오픈스택커뮤니티와기술동향
 
Docker for V-Raptor(ARM Server)
Docker for V-Raptor(ARM Server)Docker for V-Raptor(ARM Server)
Docker for V-Raptor(ARM Server)
 
[오픈소스컨설팅 뉴스레터] 2016년 1분기
[오픈소스컨설팅 뉴스레터] 2016년 1분기[오픈소스컨설팅 뉴스레터] 2016년 1분기
[오픈소스컨설팅 뉴스레터] 2016년 1분기
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
 
Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디
Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디
Tokyo Upstream Training 후기 @OpenStack 한국 커뮤니티 2015년 하반기 스터디
 
쉽고 빠르게 접하는 오픈스택
쉽고 빠르게 접하는 오픈스택쉽고 빠르게 접하는 오픈스택
쉽고 빠르게 접하는 오픈스택
 
오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
 
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
 
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
 
[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기
[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기
[12월 번역 Meetup] Hands on-lab 오픈스택: 번역으로 contributor 활동하기
 
오픈스택 커뮤니티 소개 및 기술 동향
오픈스택 커뮤니티 소개 및 기술 동향오픈스택 커뮤니티 소개 및 기술 동향
오픈스택 커뮤니티 소개 및 기술 동향
 
Red Hat Enterprise Linux OpenStack Platform Overview - RHELOSP5
Red Hat Enterprise Linux OpenStack Platform Overview - RHELOSP5Red Hat Enterprise Linux OpenStack Platform Overview - RHELOSP5
Red Hat Enterprise Linux OpenStack Platform Overview - RHELOSP5
 
오픈소스로 구축하는 클라우드 이야기
오픈소스로 구축하는 클라우드 이야기오픈소스로 구축하는 클라우드 이야기
오픈소스로 구축하는 클라우드 이야기
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
 

Semelhante a Openstack에 컨트리뷰션 해보기

제로부터시작하는Git
제로부터시작하는Git제로부터시작하는Git
제로부터시작하는GitMario Cho
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)Ildoo Kim
 
GitHub 실습 교육
GitHub 실습 교육GitHub 실습 교육
GitHub 실습 교육승엽 신
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Juwon Kim
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반BJ Jang
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료BJ Jang
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기Mario Cho
 
개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님NAVER D2
 
오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나
오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나
오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나Ian Choi
 
오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)승훈 오
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기SeungYong Baek
 
알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1Hansol Kang
 
Git Tutorial
Git TutorialGit Tutorial
Git TutorialMDLicht
 
0508. git basic
0508. git basic0508. git basic
0508. git basic민정 김
 
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubGit 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubJunyoung Lee
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Junyoung Lee
 
git 간단한 사용방법
git 간단한 사용방법git 간단한 사용방법
git 간단한 사용방법Oh Dongju
 

Semelhante a Openstack에 컨트리뷰션 해보기 (20)

제로부터시작하는Git
제로부터시작하는Git제로부터시작하는Git
제로부터시작하는Git
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)
 
GitHub 실습 교육
GitHub 실습 교육GitHub 실습 교육
GitHub 실습 교육
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기
 
개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님
 
Git lecture1
Git lecture1Git lecture1
Git lecture1
 
오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나
오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나
오픈소스 개발 Upstream - ONOS/CORD 워킹 그룹 2차 세미나
 
오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
11. git basic
11. git basic11. git basic
11. git basic
 
알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1
 
Git Tutorial
Git TutorialGit Tutorial
Git Tutorial
 
Gitlab.key
Gitlab.keyGitlab.key
Gitlab.key
 
0508. git basic
0508. git basic0508. git basic
0508. git basic
 
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubGit 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)
 
git 간단한 사용방법
git 간단한 사용방법git 간단한 사용방법
git 간단한 사용방법
 

Openstack에 컨트리뷰션 해보기

  • 1. Sejong System Engineering Laboratory koain@naver.com Kim Young Woo OpenStack에 Contribution 하는 법 OpenStack Korea Community 2016 fall upstream training study 2017-02-101
  • 2. 2017-02-102 명령어는 우분투 16.04 기준으로 작성 됬습니다. (패키지 다운 명령어를 제외하고 별 차이 없음)
  • 3. Contents • IRC 참여하기 • Contribution을 위한 계정 등록 • 일반적인 Github Workflow vs OpenStack Contribution Workflow • Sandbox에 Commit 해보기 • 실제 Commit 해보기 2017-02-103
  • 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 클릭
  • 12. 2017-02-1012 일반적인 Github Workflow vs OpenStack Contribution Workflow
  • 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
  • 15. 2017-02-1015 Sandbox에 Commit 해보기 • Sandbox 란 ? • 샌드박스는 실험적 의미의 프로그램을 연결하는 곳을 지칭하기도 한다. (wiki) • 즉, 연습용 저장소
  • 16. 1. git 설치하기 1. $ sudo apt install git 2. $ git config --global user.name “YOURNAME” (gerrit의 username과 동일하게 기입) 3. $ git config --global user.email “YOUREMAIL” (gerrit에 등록된 email과 동일하게 기입) 2017-02-1016 Sandbox에 Commit 해보기 2. Sandbox 저장소 클론하기 1. $ git clone git://git.openstack.org/openstack-dev/sandbox.git
  • 17. 3. git-review 설치하기 1. $ sudo apt install git-review 2. $ git config --global gitreview.username “USERNAME” (gerrit에 등록된 username과 동일하게 기입) 3. cd ~/sandbox (Clone 한 sandbox 저장소로 이동) 4. $ git review -s (git review setup) 5. $ git config –l (설정이 잘 됬나 확인) 2017-02-1017 Sandbox에 Commit 해보기
  • 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 해보기
  • 26. 1. Bug 찾기 – 오타 발견 ! 2017-02-1026 실제 Commit 해보기 2. Bug 등록 (연습용)
  • 27. 3. 수정 후 gerrit에 commit 2017-02-1027 실제 Commit 해보기 4. 코드 리뷰 후 머지