이 페이지에서는 모질라(Mozilla)에 처음 기여하는 방법에 대해 안내합니다. 만나게 되어 반가워요! :)

도움이 필요하세요?

모질라 커뮤니티(Mozilla community)는 새로운 참가자들에게 열려있고, 접근하기 쉽고, 친절하다는 점을 자랑스러워 한답니다. 참여하는데 어려움이 있거나, 질문에 대한 답변을 찾기 힘들 때 IRC의 대화방(#introduction chat room on irc.mozilla.org.)에서 물어보시면, 시작하실 수 있도록 도와드리겠습니다.

기여하기를 시작하기 전, Firefox에서 작업을 준비하고 여러분의 기술로 해결할 수 있는 문제점을 찾는 부분들도 만만치 않다는 걸 알고 있습니다. 그래서 우리는 Mozilla를 좀 더 개방적이고, 접근하기 쉽고, 참여하기 쉽게 만드는 방법을 항상 찾고 있답니다. 혹시 이 문서를 따라하는 데 문제가 있거나, 넘어가기 힘든 장애물과 마주친다면 Mike Hoye(mhoye@mozilla.com)에게 문의해 주세요.

어떤 기술이 필요할까요?

모질라(Mozilla)는 큰 프로젝트이며, 매우 다양한 기술들을 가진 기여자들과 함께 해서 설레입니다.

  • C++를 알고 계신다면, 파이어폭스(Firefox)나 다른 모질라 제품들의 핵심 계층(core layer)에 기여할 수 있습니다.
  • JavaScript 또는 HTML/CSS를 알고 계신다면, 파이어폭스의 front-end에 기여할 수 있습니다.
  • Java를 알고 계신다면, Firefox on Android, Firefox Focus for Android, Firefox for FireTV에 기여할 수 있습니다.
  • Swift를 알고 계신다면, Firefox for iOSFirefox Focus for iOS에 기여할 수 있습니다.
  • Python을 알고 계신다면, 모질라의 Firefox Sync나 Firefox Accounts 같은 모질라의 web service에 기여할 수 있습니다.
  • Make, Shell, Perl, Python을 알고 계신다면, 모질라의 빌드 시스템(build system), 배포(release engineering), 자동화(automation)에 기여할 수 있습니다.
  • C를 알고 계신다면, NSS, Opus, Daala에 기여할 수 있습니다.
  • 프로그래밍(programming)이 아니더라도 모질라의 목표(mission)에 기여할 수 있는 방법은 더 많습니다. 혹시 design이나 testing, 번역, 다른 형태의 기여에 관심이 있으시다면 자원봉사자 위키(Volunteer Opportunities wiki)나 Active community를 확인해 주세요.

아직 프로그래밍을 잘 모르지만, 배우고 싶으신가요? MDN Web Docs에 매우 많은 자료들이 있답니다!

1단계 - Firefox Desktop이나 Mobile 빌드(build) 하기

Firefox에 기여하고 싶으시다면, Firefox desktop이나 mobile을 만들기 위한 간단한 안내서를 확인해 보세요. 환경 설정하는 중에 많은 양의 내려받기 등이 포함되어 있어 시간이 좀 걸릴 수 있습니다. 그러니 build 중 다음 단계도 한 번 확인 해보세요. Build에 대한 추가 안내는 이 곳에서 확인하실 수 있습니다.

Community-supported Thunderbird build 같은 Mozilla의 다른 제품들은 빠른 검색을 통해 확인하실 수 있습니다. 어떤 경우엔 기여하는 데 아무 것도 build 할 필요가 없기도 하지요.

2단계 - 작업할 거리 찾기

"할당됨(Assigned)"이라고 표시된 오류(bug)로 시작하는 것은 좋은 생각은 아닙니다. 여러분의 기여로 인한 가치에 확신이 있는 게 아니라면요. 누군가가 이미 그 오류로 작업을 하고 있는 중입니다. 담당자가 없다 하더라도, 누군가가 해당 항목을 고치고 있는 건 아닌가 댓글을 확인해 보는 게 정중합니다.

작업할 거리를 찾았다면, 바로 댓글을 남기세요! 제보자(bug sumitter), 검토자(reviewer), 구성요소 담당자(component owner)에게, 여러분이 해당 오류를 고치고 싶어 한다는 걸 알리는 거죠. 그럼 몇 가지 추가 정보를 받을 수도 있고, 어쩌면 담당자가 될 수도 있습니다.

개인적인 불편함을 고쳐보세요.

Firefox, Thunderbird, 아니면 다른 좋아하는 Mozilla 응용 프로그램에서 수정하고 싶은 것들이 있다면, 거기에서 시작하는 것도 매우 좋습니다. 다음 방법을 참고하세요:

새로운 기여자에게 어울린다고 분류놓은 bug 찾기

Bugzilla에 제출된 수백만 개의 오류(bug) 중, 어디서 시작할 지 찾는 일도 어려울 수 있죠. 그래서 조금 더 쉽게 만들어보고자, 아래와 같은 오류 분류를 만들었습니다.

  • Codetribute - 조언자와 함께하는 오류를 찾기위한 웹사이트입니다. 처음 시작하기 좋은 것들도 있고, 약간 어려운 것들도 있죠. 여러분의 조언자가 오류를 수정하여 제출 및 확정까지 도와드릴 겁니다.
  • Good First Bugs - 이 분류의 오류들은 Mozilla 생태계에 첫 발을 들여놓기에 제일 좋은 방법입니다. 어떤 경우에는 몇 줄에 불과할 정도로 작은 변경사항들이지만, 개발 환경을 설정하고 Bugzilla를 탐색해보며 Mozilla의 codebase에 기여하는 방법을 배우는 굉장히 좋은 방법입니다.
  • Mentored bugs - 이 분류의 오류들은 조금 더 어렵지만, 해결 과정 중에 여러분들을 도와줄 조언자가 있습니다. 보통은 시작하기에 필요한 충분한 정보들이 오류와 함께 제공됩니다. 도움이 필요한 경우, IRC를 통하거나, 오류 항목, 혹은 e-mail을 통해 조언자에게 연락을 취할 수 있습니다. 오류 해결을 끝마치면 조언자가 code를 반영하는 데 도움을 줄 겁니다.
  • Twitter의 @StartMozilla를 구독(Follow) 하세요. Mozilla의 새 기여자들에게 어울리는 Good First Bug들이 매일 올라옵니다.
  • firefox-dev.tools를 방문해보세요 - 새 기여자들을 위해, Firefox Developer Tools의 오류들이 정리되어 있습니다.
  • Student Projects 는 큰 프로젝트로서, 예컨대 대학생들의 학점을 위한 프로젝트로 적당합니다. 당연하지만, 학생이 아니더라도 자유롭게 버그를 수정할 수 있습니다. 우리는 두가지 목록을 유지하고있으며, 하나는 존재하는 코드베이스에 기초한 프로젝트, 그리고 새로운 어플리케이션을 구현하는 프로젝트입니다.

3단계 - 버그를 수정하기

 우리는 당신의 능력을 믿습니다. 아래에 버그 수정에 도움이 되는 자료가 있으니 참고해주세요.

4단계 - 코드를 재검토 하세요

버그를 수정할 때, 관련된 패치를 첨부하시고 재검토를 요청하세요. 첨부물에 상세한 내용을 링크하시고, 재검토 flag를 설정해주세요. 그리고 재검토자의 bugzilla ID를 텍스트 입력란에 입력해주세요( 이메일주소 또는 그들이 제공하는 유니크네임도 해주세요). It is very important to attach a bugzilla ID, or the request will be missed.  그럼 어떻게 올바른 요청을 부탁할 수 있을까요?

  • 당신이 metored bug를 발견했다면, 멘토에게 도움을 요청하세요; 어떻게할지 알고있거나 쉽게 알아볼 수 있을겁니다.
  • hg blame 을 실행하고 당신이 작업한 함수를 수정한 사람들을 살펴보세요. ( 그들은 좋은 후보가 될 것 입니다. )
  • 버그는 검토를 부탁한 훌륭한 사람의 명확한 지시를 포함하고 있습니다.
  • 최근 버그와 관련된 유사한 주제가 있습니까? 이런 경우에, 검토자는 해당 버그에 대해 좋은 선택이 될 것 입니다.
  • We have an out of date list of modules which lists peers and owners for the module, some of whom will be a good reviewer. In the worst case, set the module owner as the reviewer, and ask them in the comment to pick someone better if they don't have time.
  • 우리는 훌륭한 검토자가 될 다수의 peer, owner가 관리하는 시대에 뒤떨어진  list of modules 를 가지고 있습니다.  최악의 상황은 owner 에게 검토자로서 모듈을 맡기고 그리고 시간이 없는 경우, 그들에게 주석에 대하여 더 나은 사람을 고르기 위해 요청하기도 합니다.

4b 단계 - Follow it up

당신이 리뷰에 대해 요청사항이 있는데, 검토자가 몇일 째 응답이 없다면 그들에게 요청하는 것을 두려워 하지 마세요. 몇일이 지난 후에도 검토자가 여전히 응답이 없다면, 그저 덧글로 버그에 관해 '리뷰 검토중이세요?' 남기세요. 만약 그들이 이후에도 응답이 없다면, #introduction 또는 #developers 에 도움을 요청하세요.

5단계 - 리뷰에 응답하기

때로는, 검토자가 크건 작건 변화에 대해서 요청을 하게 됩니다. 어떤 경우든 간에, 검토자가 요청한 사항에 대해서 수정하세요. 당신이 방법을 모른다면, 물어보세요! 버그에 관해 새로운 패치를 붙이고, 그리고 같은 검토자에게 다시한번 검토를 요청하세요. 만약 당신이 r+를 받는다면, 이는 당신이 리포트한 버그가 tree에 적용되었음을 의미합니다.

6단계 - 실제 tree에 코드 넣기

여태까지 당신이 아직 tree 속으로 코드를 집어넣는 능력이 없다면, 다른사람에게 그방법을 물어봐야 합니다. 만약 맨토가 있다면 그들에게 물어보세요. 아니라면, 검토자에게 요청하세요. 검토자가 많이 바쁘다면, checkin-needed 키워드를 이용해 commit에 표시를 남기세요. 친절한 사람이라면 몇일 안으로 해당 코드를 저장소에 push 하고, 그리고 버그를 업데이트 할 것 입니다.

7단계 - 반복하기

축하합니다. 당신의 첫 번째 버그를 수정했습니다. 이제 스탭3번으로 돌아가 다시 반복하세요. 이제 당신만의 첫 버그를 수정했으며, 당신은 level1 에 대한 저장소로 접근할 권한을 요청할 수 있고, 당신은 tryserver로 push 할 수 있고, 그리고 멀티플랫폼에서의 당신의 변경사항에 대해 피드백을 자동적으로 얻을 수 있습니다. 사소한 몇몇의 버그를 수정한 후에 당신은 level3에 대해 접근하도록 요청해야 합니다. 그래서, 당신의 코드를 push 하고 그 후에 r+ed 를 받게 됩니다.

More information

We're in the process of improving information on this page for newcomers to the project. We'll be integrating some information from these pages soon, but until then you may find them interesting in their current form:

문서 태그 및 공헌자

이 페이지의 공헌자: windchaser, mdnwebdocs-bot, hoony, zzangjjw4406, cap3618, bbogle
최종 변경자: windchaser,