부록 A Zeppelin Open Source 기여 방법

나에게 필요한 기능 구현 또는 버그를 개선하고 싶다면 - jira 확인

[이슈검색 하기]
오래전에 fork 해두었다면, 여기 참조 http://www.notforme.kr/archives/1631

+ jira 이슈 고르기 (쉬운 것부터)

    기능개발 또는 버그픽스

    검색방법
    Project : Zeppelin
    Issue Type : Bug
    Status : Open
    Owner : None
    Priority : Blocker or Critical
      Blocker 	개발, 테스트, 운영 중단 이슈
    	Critical 	크래시, 자료유실, 심각한 메모리 누수
    	Major 	중요한 기능 불가
    	Minor 	사소한 기능 불가
    	Trivial 	사소한 문제(예: UI 텍스트 오타)

    ==> 선택 : ZEPPELIN-3413  spark 2.3.0 not supported https://issues.apache.org/jira/browse/ZEPPELIN-3413?filter=-5&jql=project%20%3D%20ZEPPELIN%20AND%20issuetype%20%3D%20Bug%20AND%20status%20%3D%20Open%20AND%20resolution%20%3D%20Unresolved%20AND%20assignee%20in%20(EMPTY)%20order%20by%20priority%20DESC%2Cupdated%20DESC

[Jira 계정신청/로그인 후 이슈 할당하기]



[fork 하기]
github 주소
https://github.com/apache/zeppelin.git


+ git repository 가져오기
cd /source
git clone https://github.com/oeegee/zeppelin.git
'zeppelin'에 복제합니다...
remote: Counting objects: 47622, done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 47622 (delta 16), reused 4 (delta 4), pack-reused 47593
오브젝트를 받는 중: 100% (47622/47622), 45.95 MiB | 3.80 MiB/s, 완료.
델타를 알아내는 중: 100% (18815/18815), 완료.


+ 저장소 조회
cd zeppelin/
git remote -v
origin	https://github.com/oeegee/zeppelin.git (fetch)
origin	https://github.com/oeegee/zeppelin.git (push)

+ upstream 이라는 이름으로 원격저장소 추가
git remote add upstream https://github.com/apache/zeppelin.git

+ 저장소 조회
git remote -v
origin	https://github.com/oeegee/zeppelin.git (fetch)
origin	https://github.com/oeegee/zeppelin.git (push)
upstream	https://github.com/apache/zeppelin.git (fetch)
upstream	https://github.com/apache/zeppelin.git (push)

+ upstream 저장소에서 변경내용 fetch

git fetch upstream
remote: Counting objects: 23334, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 23334 (delta 3965), reused 3945 (delta 3944), pack-reused 19348
오브젝트를 받는 중: 100% (23334/23334), 18.43 MiB | 2.14 MiB/s, 완료.
델타를 알아내는 중: 100% (9579/9579), 로컬 오브젝트 928개 마침.
https://github.com/apache/zeppelin URL에서
 * [새로운 브랜치]       branch-0.5   -> upstream/branch-0.5
 * [새로운 브랜치]       branch-0.5.5 -> upstream/branch-0.5.5
 * [새로운 브랜치]       branch-0.5.6 -> upstream/branch-0.5.6
 * [새로운 브랜치]       branch-0.6   -> upstream/branch-0.6
 * [새로운 브랜치]       branch-0.7   -> upstream/branch-0.7
 * [새로운 브랜치]       branch-0.8   -> upstream/branch-0.8
 * [새로운 브랜치]       gh-pages     -> upstream/gh-pages
 * [새로운 브랜치]       master       -> upstream/master
 * [새로운 태그]         v0.7.0       -> v0.7.0
 * [새로운 태그]         v0.7.1       -> v0.7.1
 * [새로운 태그]         v0.7.2       -> v0.7.2
 * [새로운 태그]         v0.7.3       -> v0.7.3

+ master checkout
 git checkout master
 이미 'master'에 있습니다
 브랜치가 'origin/master'에 맞게 업데이트된 상태입니다.

+ 현재 나의 저장소에 원본 소스 merge

git merge upstream/master
업데이트 중 82d836fd5..e503623de
Fast-forward
 .appveyor.yml                                                                       |    33 +
 .github/PULL_REQUEST_TEMPLATE                                                       |     4 +-
 .gitignore                                                                          |    20 +-
 .travis.yml                                                                         |   159 +-
 LICENSE                                                                             |    22 +-
 README.md                                                                           |    10 +-
 SECURITY-README.md                                                                  |     7 +-
 _tools/checkstyle.xml                                                               |   513 +-
 alluxio/pom.xml                                                                     |    65 +-
 .. 중략 ...
 .../src/test/java/org/apache/zeppelin/notebook/NoteInterpreterLoaderTest.java       |   176 -
 zeppelin-zengine/src/test/resources/log4j.properties                                |     6 +-
 1219 files changed, 116789 insertions(+), 39498 deletions(-)
 create mode 100644 .appveyor.yml
 create mode 100755 bin/stop-interpreter.sh
 ... 중략
 create mode 100644 zeppelin-zengine/src/test/resources/interpreter/test/interpreter-setting.json


+ 소스 sync
git push
Username for 'https://github.com': oeegee
Password for 'https://oeegee@github.com':
오브젝트 개수 세는 중: 18120, 완료.
Delta compression using up to 8 threads.
오브젝트 압축하는 중: 100% (8346/8346), 완료.
오브젝트 쓰는 중: 100% (18120/18120), 14.16 MiB | 1.54 MiB/s, 완료.
Total 18120 (delta 7368), reused 16226 (delta 5662)
remote: Resolving deltas: 100% (7368/7368), completed with 408 local objects.
To https://github.com/oeegee/zeppelin.git
   82d836fd5..e503623de  master -> master

+ 단축 명령어 - git merge + git push ==> git pull
git pull upstream master

+ 소스 병합 확인
git merge upstream/master
이미 업데이트 상태입니다.


[Contribution Guidelines]
https://zeppelin.apache.org/contribution/contributions.html


[개발시작]

unit test를 작성하자.


+ travis profile 생성하고 빌드해보기
https://docs.travis-ci.com/user/getting-started/

https://travis-ci.org/oeegee/zeppelin
fork한 프로젝트 목록들이 나타나는데, 이곳에서 zeppelin 프로젝트의 스위치를 ON한다.

.travis.yml 을 작성한다.

https://github.com/apache/zeppelin/blob/master/.travis.yml


language: java

sudo: false

cache:
  apt: true
  directories:
    - .spark-dist
    - ${HOME}/.m2
    - ${HOME}/R
    -  zeppelin-web/node
    -  zeppelin-web/node_modules
- zeppelin-web/bower_components
... 생략 ...

[PR하기]
Travis 빌드까지 성공했다면, Pull Request 를 작성하자!