오픈소스 프로젝트 개발 참여

ssssm·2022년 3월 7일

오픈소스 참여 조건

  1. 본인이 관심 있고, 흥미 있는 프로젝트 선택.
  2. 사용할 줄 아는 언어.
  3. 프로젝트 활성화 정도. (기여자 수, issue, PR의 개수)
  4. 컴파일, 테스트가 가능해야 한다.

오픈소스 프로젝트 특징

  • 오픈소스 프로젝트는 모두 git으로 관리한다.
  • CONTRIBUTING.md에 협업의 모든 규칙들이 있다.

오픈소스의 본질은 인기도, 사용성, 가치창출도 중요하지만 리뷰와 토론이 활성화되어 있고 협업하는 사람이 많고 잘 되어있는 프로젝트가 좋은 오픈소스이다.


Commit Message

'update' or 'Add hello.c'와 같이 작성하면 안 된다. 협업에 도움 되지 않고 다른 사람이 어떤 의미로 commit 한 건지 알아 볼 수 없기 때문이다.

첫단어

  • Fix : 잘못된 것을 수정할 때.
  • Add : 함수, 파일, 클래스 추가할 때. (없던 기능, 없던 옵션 추가할 때)
  • Imporove : 원래 잘 되던 것을 추가할 때. (10초->5초)
  • Support : 윈도우에서 되던걸 리눅스. (x86->ARM)
  • Refactor : 코드 재배치.

filter 기능을 사용하면 협업, 구체화 하는데 도움이 된다.

Commit 크기를 쪼개는 방법은 : 협업을 하기 유리하게 목적에 따라서 간소화해서 commit 한다. 보통 기능을 추가할 때마다 commit 한다.


PR -> Merge VS PR -> Reject

한 번에 거절당하지 않고 Merge 하면 물론 좋지만, 거절당해도 꼭 나쁜 것은 아니다.

PR -> Reject -> v2 -> v3 -> Merge 될 수도 있기 때문이다.

오픈소스 컨트리뷰션 전략

  • 오픈소스를 파악한다. (목적, 취지 / 구조, 폴더, 파일 / 개발환경 구축)
  • 프로젝트 개발환경 파악한다. (기존 commit 분석, issue, PR 등)
  • 특정 소항목(서브 파트) 선택한다. (문서, 예제코드, 테스트 코드 등)

컨트리뷰션 방법 9가지

  1. Issue : 작업하기 적당한 이슈 찾기.
  2. Build problem : 최신 소스코드 빌드 및 세팅중에 생기는 문제 찾기.
  3. Question : 프로젝트의 특정기능을 이해하면서 생기는 질문을 issue글로 남기기.
  4. Doc : 다양한 기능을 테스트하고 메뉴얼 페이지나 문서에 빠져 있는 설명 또는 예제 채워 넣기.
    4-1. Test : 프로젝트 내부 test script, unit test등 다양한 기능 테스트 살펴보고 새로운거 추가.
    (문서 추가 / 개선) => read가 많아야 write가 가능하다.
    4-2. Example : 프로젝트를 활용한 다양한 example을 실행해보고, 추가 example 넣기.
    (예제 코드 추가 / 개선) => 있으면 있을 수록 좋다 (초보자를 위한 것)
  5. Suggestion : 프로젝트에 대한 다양한 제안을 issue 게시글로 남겨본다.
  6. Refectoring : 특정 기능 테스트 후 그 기능에 대한 함수들만 소스리딩하고 리팩토링시도.
  7. Review : 기존 pull-request 를 분석하면서 생기는 의문이나 질문을 댓글로 남기기.
  8. Discussion : 다른사람의 issue 에 필요한 답글 남기기.
  9. Feature : 필요하다고 생각이드는 기능을 개발해본다.

0개의 댓글