Switch branches/tags
Nothing to show
Find file History
Permalink
..
Failed to load latest commit information.
README.md 2017년 2월 7일 upstream training workshop 직전 마지막 Mar 14, 2017

README.md

2016년 upstream : 오픈스택 컨트리뷰션 스터디


  • 이 저장소는 OpenStack 업스트림 컨트리뷰션과 관련된 스터디한 자료를 모아둔 곳입니다.
  • This repository data is for studying OpenStack contribution using upstream training materials.

목차 (Table of Contents)

스터디 개요 (Overview)

이번 스터디는 Openstack 컨트리뷰션을 주제로 하여, 한글 번역된 업스트림 트레이닝 자료와 함께 진행하고자 합니다. 같이 즐겁고 재미있게 스터디를 한 후 해당 스터디 경험을 토대로, 2017년 2월 11일 (토) 진행 예정인 제2회 업스트림 트레이닝 행사를 같이 기획 및 진행을 하는 자리를 갖고자 합니다.

  • 참가 대상

    • OpenStack 컨트리뷰션 프로세스를 알고자 하는 분

    • 실제 OpenStack 컨트리뷰션에 관심 있으신 분

    • git, git-review, Launchpad, Gerrit 등 컨트리뷰션 관련 도구를 알고자 하시는 분

    • 끈기있게 스터디에 참석하실 분 & 커뮤니티 구성원들과 함께 즐겁게 스터디 후 2017년 2월 11일 행사 진행을 같이 도와주실 분

  • 참가비

    • 무료
  • 진행 (예상) 일정

    • 11/22 (화) 20:00-22:00

    • 12/13 (화) 20:00-22:00

      • <실습> IRC 프로그램 & 미팅
    • 12/20 (화) 20:00-22:00

      • <실습> OpenStack 관련 계정 등록 및 git-review 설치
    • 1/10 (화) 20:00-22:00

      • <실습> Sandbox 저장소 커밋
    • 1/24 (화) 20:00-22:00

      • <실습> Launchpad와 연동
    • 2/7 (화) 20:00-22:00

      • <실습> 문서화 & 번역 프로젝트
    • 2/11 (토) 10:00-18:00

      • <제2회 업스트림 트레이닝 개최 예정>

[사전 준비]

[2016/11/22] 1회차 스터디

Openstack 한글 문서

Git

과제

  1. 리눅스 노드1(가상머신 or 물리머신 or mac)
  2. www.openstack.org -> Foundation member로 가입(Community Memeber는 안됨)
  3. www.launchpad.net -> Ubuntu One 계정 가입
  4. review.openstack.org ID -> launchpad 계정으로 로그인한 후, username 생성 필요 + ICLA 동의 필요
  5. your SSH 공개키: 커밋 등에 사용하는 컴퓨터를 인증하기 위한 수단
  6. Zanata ID: 번역 컨트리뷰션을 위해 필요함 (translate.openstack.org)
  7. GitHub ID: 없어도 되지만, 컨트리뷰션을 GitHub에 보이도록 하고 싶다면 gerrit username 및 이메일을 동일하게 사용할 것

[2016/12/13] 2회차 스터디

Zanata 가입 / Contribute 방법

Openstack 거버넌스 / IRC 이용

Git review와 Gerrit 이용하기

  • git-review 설치(sudo apt install git-review)
  • Upstream training github 주소 : http://docs.openstack.org/ko_KR/upstream-training/git.html
  • git clone http://docs.openstack.org/ko_KR/upstream-training/git.html
  • git config --global gitreview.username <username> (빼먹을 수 있으니 주의)
  • git review -s (git review를 local repository에 설치한다.)

Trying again with ssh://janghe11@review.openstack.org:29418/openstack-dev/sandbox.git Creating a git remote called "gerrit" that maps to: ssh://janghe11@review.openstack.org:29418/openstack-dev/sandbox.git 와 같이 콘솔창에 출력되면 성공적으로 git review가 세팅되었다.

  • Dummy file 추가하기 $ cat > ko24.txt $ git add ko24.txt $ git commit -m "Test commit" $ git review
    • git review를 하고 나면 https://review.openstack.org/#/c/410196/ 와 같은 gerrit URL이 생성된다.

      • Permission Key Denied가 뜬 경우
      1. username을 입력하지 않았다.(git config --global gitreview.username <username>)
      2. Openstack Foundation Member가 아니다. (Community Member는 안됨.)
      3. Gerrit에서 ICLA Agree를 하지 않았다.
      4. Gerrit에서 Contact Information을 넣지 않았다.(review.openstack.org -> Contact information last updated on 이 있어야 함.)
      5. ssh key(id_rsa 말고) 를 다른 key file을 사용하였다.
      6. git config에 gerrit.review가 중복된 경우.
    • branch를 따서 작업하던 도중 다른 사람의 commit이 올라오면 rebase를 통해서 master를 갱신해준 다음 push를 해주어야 한다. (그렇지 않으면 Gerrit에서 Conflict가 발생한다.)

    • commit 여러개를 하고 싶으면 amend로 무조건 하거나 cherry pick으로 댕겨서 작업 후 올릴 것. 1 work에 1 commit

    • review에서 문제가 발생하여 patch set 2, 3을 해야하는 경우, 해당 커밋을 지우지 말고 그 상태에서 수정하여 push 한다.

과제

  1. 연습을 위한 sandbox 읽어보고 오기.
  2. 자신의 git review URL Slack에 공유.
  3. 다른 사람 5명의 URL에 접속하여 점수를 -2 -1 0 1 2를 준다.
  4. 다른 사람 URL에 접속하여 comment를 작성해 본다.
  5. 혹시 자신에게 아무런 점수/comment가 주말까지도 없는 경우 임의로 스터디원 중 1명을 reviewer 초대
  6. 자신의 패치가 마음에 들지 않으면 abandon을 하고 새로 올린다.
  7. Exercise : 자신의 patchset 2 or 3 올리기.

[2016/12/20] 3회차 스터디

git status 변경사항이 생겼을때 -> 변경사항을 없애는 방법!(Untracked files, 즉 필요없는 파일이 생겼다)

  • git clean -xfd : 저장소를 clean (현재 관리되고 있는 파일을 제외한 / 관리되지 않는 파일들)

    • man git -clean (Changes to be committed : 문구를 잘 확인해 보세요!)
  • git checkout -- [filename] : commit 전에 원래 수정 전으로 돌리고 싶을 때(Changes not staged for commit -> Changes to be committed)

    • git diff 로 차이점 확인
  • git stash : 내가 수정한 내역을 commit 하기 전에 stack에 저장할 수 있다. $ git stash list

    • 원래대로 복원 -> git stash pop
    • stack 지우기 -> git stash drop $ git stash $ git stash drop cf. $ man git-clean

gerrit filter

  • e.g.) Project 필터 => project:openstack-dev/sandbox
  • comment : draft -> post를 선택해야 글이 올라갑니다.
  • patch가 올라갈수록 왼쪽 오른쪽에서 commit이 되면서 생긴 아지머을 볼 수 있다.
    • patchset 1, 2...에 reply를 달고 싶을 경우 -> Patch Sets에서 강제로 원하는 patch를 선택하고 comment

commit message

과제

  • Launchpad 에 버그를 등록한다.
  • 해당 버그 Assignee를 자신으로 할당한다.
  • openstack-dev/sandbox 저장소에 커밋을 하나 등록한다 : “Closes-Bug: #<버그 번호>”를 커밋 내용에 명시할 것
  • git review 명령어를 통해 해당 커밋을 등록한 후, Launchpad와 상호 레퍼런스가 되는지 확인한다.
  • (상호 레퍼런스가 되지 않았으면 커밋 메시지 수정 또는 Launchpad 상태를 재변경한다.)
  • 해당 Launchpad URL을 Slack에 공유

[2017/01/10] 4회차 스터디

Launchpad Status 버그 상태 관련 정리

  • New: "새롭게" 등록된 버그 (방금 새롭게 등록되어 아직 살펴보지 않았다는 의미를 내포)
  • Incomplete: 버그 보고가 "불완전": 상세한 정보를 포함하는 보고가 필요함
  • Opinion: 버그에 대한 "의견" 또는 토론이 필요함 (프로젝트와 성격이 안 맞는 등의 이슈)
  • Invalid: 요청한 내용이 버그가 아니라 Q&A, 기술 지원, 스팸 등에 해당되기에 "무효"함
  • Won't Fix: 현재 프로젝트 계획에서 볼 때 우선 순위가 낮거나 고려를 지금 할 수가 없음. 따라서 "고치지 않고자 함"
  • Confirmed: 보고자가 아닌 다른 사람이 해당 버그를 "확인"함
  • Triaged: 버그를 관리하는 감독자가 버그 중요성 등을 "구분"함
  • In Progress: 해당 버그에 대한 할당자가 생겼으며, 해당 할당자가 버그 "진행 중" (Gerrit에 업로드 되어 Merge되지 않은 상태 또한 진행 중으로 간주)
  • Fix Committed: 버그가 코드 저장소에 "커밋 내역으로 수정됨". Gerrit에서 Merged에 해당하나 해당 코드 저장소 tag이 이루어지지 않아, 릴리즈에는 반영이 안됨 (번역에서는 Zanata에 반영된 상태를 Fix Committed로 간주하고자 함)
  • Fix Released: 해당 수정 사항이 "릴리즈"에 최종 반영됨 (번역의 경우는 코드 저장소에 반영된 시점을 기준으로 하고자 함)

번역 가이드라인

  • 번역 단어집 : https://wiki.openstack.org/wiki/%EB%8B%A8%EC%96%B4%EC%A7%91
  • 번역을 수정 할 수 있는 사람 : reviewer / coordinator
  • Zanata에는 남은 비율에 비례하여 시간을 보여준다.
    • e.g.) 단어집 관련 commit
    • cf. Horizon 한국어 번역
      • 메뉴에서 Incomplete 체크 -> Fuzzy와 Rejected 체크 해제(체크 하지 않고 Save를 하면 나머지 번역이 제대로 안된 부분도 반영된다.)
      • 화살표에서 파란색 bar는 일반 참여자가 수정할 수 없음.
    • 주의사항
      • WORDS 뒤에 반드시 한글로 번역 할 때에는 띄어쓰기가 있어야 함. (WORDS 를~)
      • e.g.) deploymennts (bug 1508571 <https://bugs.launchpad.net/horizon/+bug/1508571>__). -> 한글로 번역시 괄호 앞 뒤로 띄워줘야 rst 문법 parser에서 인식이 가능함.
      • %s의 경우 반드시 번역시에도 넣어줘야 함.(넣어주지 않으면 build시 에러 남.)
  • po file + pot file = 번역을 위한 파일
  • rst = Markdown 종류의 파일

과제

  • Zanata에서 Horizon 번역을 300단어 이상 하기.

[2017/01/24] 5회차 스터디

컨트리뷰션이 가능한 영역

  1. Documentation
  2. I18n (not Zanata - translation)
  3. Actual project(s)

Documentation

  • 컨트리뷰션을 할 때 필요한 것들

    1. 텍스트 수정 가능(혹은 추가)
    2. rst 문법에 친숙하여야 함
    3. convention을 알아야 함(예: 1줄에 80줄 이상을 넘기면 안됨.)
    4. git review 하기 전에 로컬에서 빌드 후 확인
    5. git review 등으로 패치
    6. social conversation with Docs team people
  • 번역 관련 repositories

    • openstack-manuals repository [통합 저장]
    • api-site
    • security-guides
    • training-guides
  • directory 내 문서 위치 및 문서화 과정

tox

  • using "virtualenv" (Python 가상 환경)
  • .tox/[virtualenv name] 에 관련 파일 관리
  • 만약 직접 사용하고 싶은 경우, source .tox/[virtualenv name]

[실습 1] training-guide -> 문서 빌드를 tox로 해 봅시다!

  • Recent version: 2.5.0, Python 2.7 supported
    • # apt install python-pip
    • # apt install python-tox
      • cf. tox 버전이 낮아 build가 되지 않을 경우: sudo apt purge phthon-tox && sudo pip install tox
    • $ git clone git://git.openstack.org/openstack/training-guides
    • $ cd training-guides
    • $ tox
    • tox.ini 안의 환경들 중에서 특정 환경만 실행 -> tox -e [environment]
    • $ tox -e build -- contributor-guide

[실습2] openstack-manuals에서 원하는 branch 및 매뉴얼을 선택해서 해당 branch에서 원하는 매뉴얼만 build 해보기

  • git clone -b [branch-name] git://git.openstack.org/openstack/openstack-manuals
  • $tox -e build -- ha-guide

오탈자 찾아내기

  • $ aspell check [filename].rst
  • git checkout -b fix-typo
    • e.g) https://bugs.launchpad.net/openstack-manuals/+bug/1512551
    • 주의 : training-guides의 경우 slide로 변환되는 특이 케이스이며, 80자가 넘을 경우 tox에서 build가 되지 않으므로 local에서 미리 build 해본다.
    • 기타 규칙 : PEP8 / Hacking -> tox에서 build 할 때 검증함.

기타

  • POT 파일: 번역 파일의 원본과도 같은 파일
  • 해당 문서 / 프로젝트에 기여하려면 : 해당 프로젝트의 컴파일이나 빌드에 대해 친숙
  • 소통 : 메일링이나 IRC에서 자주 커뮤니케이션을 하는게 중요
  • 2/11 upstream training -> https://openstack-kr.github.io/upstream-training

과제

  1. Zanata 300단어 -> 하기
  2. Optional: 오타 찾아서 git review로 submission 해 보기

[2017/02/07] 6회차 스터디

Contribution 정리 보충

  • GitHub은 Gerrit의 미러링 용
  • Gerrit과 GitHub의 Email 명만 같으면 GitHub에 연동되어 나중에 나의 이력으로 나온다.
    • GitHub에도 나의 commit 이력이 나오게 하고 싶으면 해당 project에 star를 눌러준다.
  • git review -s -> git review의 연결 체크 + ChangeId를 자동으로 넣기 위함
  • Launchpad에 Bug는 필수적으로 Reporting(workflow상 issue tracking을 위해)
  • Related-Bug: -> 해당 버그가 다른 버그와 연관되었을 경우 명시
  • Fixed Typo Commit e.g.) https://review.openstack.org/#/c/425529/

Openstack 기여 보충과 사례