Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
오픈 소스
컨트리뷰션 가이드
JBUG Korea
@tedwon
jwon@redhat.com
오픈 소스 문화의 키워드?
Contribution
&
Reputation
변경 사항 최소화
&
DRY principle
변경 사항 최소화
&
Don't Repeat Yourself
Git & Github 와 친해지기
● github 계정 생성하기
● github 에서 프로젝트 & 소스코드 검색
● 프로젝트 포킹해서 맘데로 고쳐보기
● https://guides.github.com
● git 레파지...
시작하기
● JIRA 이슈 생성하기
○ 이슈 아이디 확보
○ 상세 내용 기술
● 업스트림 프로젝트 레파지토리로 이동
○ https://github.com/jboss-modules/jboss-modules
● 개인 레파지...
Tip - SourceTree 활용!
Hacking on WildFly
https://developer.jboss.org/wiki/HackingOnWildFly
Sample Project
https://github.com/JBUGKorea/helloworld-project
시작하기
● 업스트림 최신 변경 사항 master 브랜치로 가져오기
○ git fetch upstream
○ git reset --hard upstream/master
○ git push -u origin master
...
코드 작업
● 코드 변경 사항 확인
○ 코드 스타일 준수
○ 변경 최소화
○ 중복 유무 확인
● 코드 인스펙션 수행
● 변경 후 단위 테스트 수행 결과 확인
● 리뷰 받기위한 철저한 준비
● 커밋
○ 메세지에 이슈 제목...
● Pull Request 생성하기
○ “base fork” 레파지토리와 “base” 브랜치 확인
○ 적용될 코드 변경 사항 최종 확인!
● 코드 리뷰 수행 및 컨버세이션
○ by Owner
○ by Maintainer...
Tips
● 코드 작업은 맘껏 push는 최소 변경분만
● Gist 활용하기
● IRC 사용하기
○ http://limechat.net/mac/
○ irc://irc.freenode.net/infinispan
● 메일링...
References
1. Toshiya Kobayashi - HOW TO CONTIRBUTE TO UPSTREAM
2. https://guides.github.com/activities/contributing-to-op...
Thanks!
오픈 소스 컨트리뷰션 가이드
Próxima SlideShare
Cargando en…5
×

오픈 소스 컨트리뷰션 가이드

How to contribute Open Source project

  • Sé el primero en comentar

  • Sé el primero en recomendar esto

오픈 소스 컨트리뷰션 가이드

  1. 1. 오픈 소스 컨트리뷰션 가이드 JBUG Korea @tedwon jwon@redhat.com
  2. 2. 오픈 소스 문화의 키워드?
  3. 3. Contribution & Reputation
  4. 4. 변경 사항 최소화 & DRY principle
  5. 5. 변경 사항 최소화 & Don't Repeat Yourself
  6. 6. Git & Github 와 친해지기 ● github 계정 생성하기 ● github 에서 프로젝트 & 소스코드 검색 ● 프로젝트 포킹해서 맘데로 고쳐보기 ● https://guides.github.com ● git 레파지토리 생성하고 프로젝트 만들기 ● https://guides.github.com/activities/hello-world/ ● https://guides.github.com/pdfs/githubflow-online.pdf
  7. 7. 시작하기 ● JIRA 이슈 생성하기 ○ 이슈 아이디 확보 ○ 상세 내용 기술 ● 업스트림 프로젝트 레파지토리로 이동 ○ https://github.com/jboss-modules/jboss-modules ● 개인 레파지토리로 포킹 ● 로컬에 프로젝트 클론닝 ○ git clone git@github.com:tedwon/jboss-modules.git ● 업스트림 레파지토리 추가 ○ git remote add upstream git@github.com:jboss-modules/jboss-modules.git
  8. 8. Tip - SourceTree 활용!
  9. 9. Hacking on WildFly https://developer.jboss.org/wiki/HackingOnWildFly
  10. 10. Sample Project https://github.com/JBUGKorea/helloworld-project
  11. 11. 시작하기 ● 업스트림 최신 변경 사항 master 브랜치로 가져오기 ○ git fetch upstream ○ git reset --hard upstream/master ○ git push -u origin master ● 새로운 PR 브랜치 생성 ○ 브랜치명은 이슈 아이디로 (ex: WFCORE-1563) ○ git checkout -b WFCORE-1563 ● 작업 전 코드 무결성 확인 ○ 빌드 mvn clean install -DskipTests ○ 단위 테스트 전체 수행 및 확인 mvn test ● 단위 테스트 코드 작성 ● 코드 작성
  12. 12. 코드 작업 ● 코드 변경 사항 확인 ○ 코드 스타일 준수 ○ 변경 최소화 ○ 중복 유무 확인 ● 코드 인스펙션 수행 ● 변경 후 단위 테스트 수행 결과 확인 ● 리뷰 받기위한 철저한 준비 ● 커밋 ○ 메세지에 이슈 제목과 링크만 작성 ■ WFCORE-1563 Fix replace deployment fail on CLI batch mode ■ https://issues.jboss.org/browse/WFCORE-1563 ● 커밋은 한개로 만들 것 ● PR 브랜치 푸쉬 ○ git push -u origin WFCORE-1563
  13. 13. ● Pull Request 생성하기 ○ “base fork” 레파지토리와 “base” 브랜치 확인 ○ 적용될 코드 변경 사항 최종 확인! ● 코드 리뷰 수행 및 컨버세이션 ○ by Owner ○ by Maintainers and Collaborators ○ 논리적으로 변경사항에 대한 이해 및 설득 ○ Ex: https://github.com/netty/netty/pull/4607 ● 코드 수정 사항 반영 및 다시 푸쉬 ○ 커밋은 한개로 만들 것 rebase, squash, cherry-pick ○ git rebase -i head~2 ● 머지(Merged)!! ● 끝 코드 리뷰
  14. 14. Tips ● 코드 작업은 맘껏 push는 최소 변경분만 ● Gist 활용하기 ● IRC 사용하기 ○ http://limechat.net/mac/ ○ irc://irc.freenode.net/infinispan ● 메일링 리스트 가입 ● 단위 테스트 코드에서 Thread.sleep() 사용하지 말 것 ● 코드 수정 없는 단위 테스트 코드 컨트리뷰션도 좋음 ● 문서 오타 수정 컨트리뷰션도 역시 좋음
  15. 15. References 1. Toshiya Kobayashi - HOW TO CONTIRBUTE TO UPSTREAM 2. https://guides.github.com/activities/contributing-to-open-source/ 3. https://developer.jboss.org/wiki/HackingOnWildFly 4. http://infinispan.org/docs/stable/contributing/contributing.html 5. http://www.slideshare.net/chacon/getting-git 6. https://backlogtool.com/git-guide/kr/ 7. http://learngitbranching.js.org/ 8. https://gist.github.com/ 9. https://help.github.com/articles/fork-a-repo/ 10. https://help.github.com/articles/using-pull-requests/ 11. https://chris.beams.io/posts/git-commit/
  16. 16. Thanks!

×