Drupal 공헌 여정을 시작하기 위한 최고의 가이드

게시 됨: 2022-08-23

소개

오픈 소스 콘텐츠 관리 시스템인 Drupal은 다양한 형태로 전 세계 개발자 및 사용자 커뮤니티의 기여를 장려합니다. 핵심 및 기여 프로젝트에 대한 패치를 포함하는 코드 형태일 수 있으며, 마케팅, 문서화, 이벤트 조직을 포함한 비코드 방식으로 또는 프로젝트를 금전적으로 지원함으로써일 수 있습니다. 이 기사는 Drupal 코드 기여 여정을 처음부터 시작하기 위해 알아야 할 모든 것을 안내합니다.

Drupal에 기여해야 하는 이유

물론, 당신이 일하는 방식과 아마도 매일의 생활 방식을 지원하는 프로젝트에 환원하는 것은 당신이 자발적으로 오픈 소스 프로젝트에 기여하고 개선해야 하는 충분한 이유가 될 수 있습니다. 그러나 기여에 대한 더 많은 인센티브를 찾고 있다면 다음과 같은 이점이 있습니다.

  • 귀하의 기여는 Drupal이 시간이 지남에 따라 모든 종속성에서 발생하는 발전과 관련하여 최신 상태를 유지하는 데 도움이 됩니다.
  • Drupal에 대한 더 많은 지식을 얻을 수 있으며, 이를 통해 고객을 위한 더 나은 애플리케이션을 구축할 수 있습니다.
  • 개발자가 더 많은 기술과 지식을 얻고 자신을 전문가로 과시함으로써 기여 시간을 후원하는 조직에 경쟁 우위를 제공합니다.
  • 당신과 같은 관심사를 공유하는 사람들과 협력하고 만나십시오

기여 방법

먼저 drupal.org에 계정을 만들고 필요한 세부 정보로 프로필을 업데이트하십시오.

계정 생성

Drupal.org에서 계정 생성

문제 찾기

계정이 생성되면 다음 단계는 올바른 문제를 찾는 것입니다. 관심 사항에 따라 다를 수 있습니다.

1. 이슈 대기열(https://www.drupal.org/project/issues)에서 이슈를 찾을 수 있습니다. 보다 구체적인 검색을 위해 '고급 검색'을 클릭하고 필터를 사용할 수 있습니다.

  • 이슈 태그 - 이슈는 다른 태그로 첨부됩니다. "초보자" 태그는 문제에 간단한 수정이 필요하고 초보자가 선택할 수 있음을 나타내고, "문서 필요" 태그는 이 문제에 약간의 문서 변경이 필요함을 나타내는 식입니다.
  • 문제 상태 - 문제가 생성되면 다른 상태를 거칩니다. 현재 문제 상태에 따라 앞으로 나아가는 데 필요한 다음 단계를 결정할 수 있습니다.
  • 문제 우선 순위 - 심각한 버그인지 사소한 수정인지 여부에 관계없이 문제의 우선 순위를 정의합니다.
  • 문제 범주 - 버그인지, 작업인지, 프로젝트에 대한 새로운 기능 요청인지 여부에 관계없이 문제의 범주를 나타냅니다.
  • 특정 프로젝트 - 여기에서 관심 있는 프로젝트를 직접 지정할 수 있습니다.
문제 필터

문제 필터

2. 또는 module/theme/profile 페이지( https://www.drupal.org/project/<project_name> )를 방문하여 항상 작업하고 싶었던 프로젝트에서 시작하십시오. 오른쪽 사이드바에서 "모든 문제" 링크를 찾습니다. - https://www.drupal.org/project/issues/<project_name>?categories=All

3. 또는 핵심에서 발견한 버그나 프로젝트 작업 중 기여한 모듈/테마/프로필에 대해 작업합니다. 기여하는 것도 올바른 방법입니다. 프로젝트를 진행하는 동안에도 항상 "기고자 모드"를 켜두는 연습을 해야 합니다. 이는 숨겨진 문제를 탐색하고 수정할 수 있는 기회를 제공합니다!

Drupal 이슈의 라이프 사이클

이슈가 생성되면 다양한 상태를 거칩니다. 다음은 보게 될 다양한 문제 상태입니다.

  1. 활성 - 새 이슈가 생성되면 활성 상태가 됩니다.
  2. 검토 필요 - 문제를 해결해야 하는 경우 작업 필요 상태입니다.
  3. 작업 필요 - 문제가 선택되고 패치가 성공적으로 제출되고 모든 테스트 사례가 통과되면 문제의 상태가 검토 필요로 변경되어야 합니다.
  4. 커뮤니티에서 검토 및 테스트 - 기고자가 문제를 검토하면 핵심 커뮤니티 팀의 구성원 중 한 명이 문제를 검토하는 "커뮤니티 검토 및 테스트"(RTBC) 상태로 문제가 이동됩니다.
  5. 고정 - 문제가 RTBC 상태에서 전달되면 고정 상태로 이동됩니다.
  6. 닫힘(고정) - 고정 상태 후 문제가 2주 이내에 자동으로 닫힘(고정)으로 이동합니다. 문제의 마지막 상태입니다.
  7. 닫힘(중복) - 이전 문제와 중복되는 문제가 생성되면 닫힘(중복)으로 직접 닫힙니다.
  8. 닫힘(수정되지 않음) - 이 상태는 문제에 솔루션이 없음을 나타냅니다.
  9. 닫힘(설계된 대로 작동) - 이 상태는 문제가 발생한 기능을 제공해야 하는 기능을 제공하여 "설계된 대로 작동"으로 이동했음을 나타냅니다. 즉, 제기된 문제는 버그가 아니라 기능입니다.
  10. 닫힘(재생할 수 없음) - 문제를 재현할 수 없는 경우 이 상태로 이동합니다.
  11. 닫힘(오래됨) - 문제가 너무 오래되어 수정할 수 없거나 일부 다른 모듈의 문제 내에서 해결되는 경우 해당 문제에 대해 상태가 닫힘(오래됨)일 수 있습니다.
  12. Patch (to be ported) - 패치가 Drupal/Contributed 모듈의 다른 버전을 위해 이식될 때.
  13. 연기됨 - 문제/기능/버그가 작성자/커뮤니티에 의해 연기되고 수정이 필요하지 않은 경우입니다.
  14. 연기됨(관리자가 추가 정보 필요) - 문제가 제기되었지만 기여 모듈의 관리자에 따르면 문제를 해결하려면 문제에 대한 추가 정보가 필요합니다.

문제 만들기

모듈에 대한 문제를 생성합니다. https://www.drupal.org/project/issues/<project_name>?categories=All 모듈의 이슈 대기열로 이동하여 Create a new issue 를 클릭합니다.

문제 슬라이드 쇼

다음 단계는 생성해야 하는 문제에 대한 세부 정보를 제공하는 것입니다.

동조

1. 제목: 문제의 제목을 추가합니다.
2. 프로젝트: 프로젝트 이름이 자동으로 선택됩니다.
3. 카테고리: 프로젝트의 카테고리를 선택합니다. 5개의 카테고리가 있습니다

  1. 버그: 버그는 시스템의 기능적 오류입니다. 예를 들어, PHP 오류, 데이터 손실, 메모리 누수, 부정확하거나 오해의 소지가 있는 문서, 부정확하거나 오해의 소지가 있는 사용자 인터페이스 텍스트 등
  2. 작업: 이것은 기능적 버그가 아니지만 릴리스 전에 "완료해야 합니다". 예를 들어 코드를 더 읽기 쉽고 유지 관리할 수 있도록 리팩토링, 자동화된 테스트 추가, 새 API에 대한 코드 업데이트, 코딩 표준 개선 등
  3. 기능 요청: 모듈에 완전히 새로운 기능을 추가해 달라는 요청입니다.
  4. 지원 요청: 모듈의 어느 부분에서나 도움이 필요하거나 drupal 핵심 기능에 대해 알고 싶은 경우. 지원 요청에 태그를 지정하고 질문을 추가할 수 있습니다.
  5. 계획: 이 태그는 하나의 문제로 해결할 수 없는 문제가 있을 때 사용됩니다. 계획 문제에는 종종 "하위" 문제와 관련된 여러 하위 단계가 있습니다.

4. 우선순위: 이슈의 우선순위를 선택합니다. 여기에는 Critical, Major, Normal 및 Minor가 있습니다. 정말 심각한 경우가 아니면 보통을 선택하십시오. 또는 정상적으로 선택하고 유지 관리자 또는 검토자가 필요에 따라 변경할 수 있도록 할 수 있습니다.

5. 상태: 새 문제에 대해 활성을 선택합니다.
6. 버전: 문제를 수정해야 하는 프로젝트의 버전을 선택합니다.
7. 구성 요소: 문제와 가장 가까운 일치 항목을 선택합니다. 나중에 변경할 수 있습니다. 여기에서 구성 요소는 모듈을 기반으로 합니다. 옵션은 모듈마다 다릅니다.
8. 할당됨: 문제는 누구에게나 할당될 수 있습니다. 필수 사항은 아니며 나중에 할당할 수 있습니다.
9. 태그: 적절한 태그로 문제에 태그를 지정합니다. 이슈 태그에 대한 지식이 없는 경우 비워 둘 수 있습니다. 이것은 필수 사항이 아니며 나중에 태그할 수 있습니다.
10. 문제 요약 및 관계: 필드를 확장하면 편집자가 문제의 세부 정보를 추가하도록 합니다. 편집기에는 미리 정의된 몇 가지 제목이 있으며 문제 세부 정보에서 원하지 않는 경우 교체할 수 있습니다.

  1. 상위 문제: 상위 문제 에 태그를 지정합니다.
  2. 관련 문제: 관련 문제 에 태그를 지정합니다.

11. 파일: 이슈와 관련된 파일을 추가하거나 파일을 생성하면서 이슈에 패치를 업로드할 수 있습니다. 그리고 문제를 저장합니다.

문제를 저장한 후. 생성된 이슈는 해당 모듈의 이슈 큐에 추가됩니다.

drupal 코어에 대한 문제를 생성하려면 https://www.drupal.org/node/add/project-issue/drupal이 링크입니다. 그리고 단계는 모듈에서 문제를 생성하는 것과 동일합니다. 그러나 위의 링크에 표시될 핵심 문제를 만들기 위한 몇 가지 지침이 있습니다.

Image removed.

핵심 문제를 생성할 때 따라야 하는 지침입니다.

패치 생성

여기에 2가지 경우가 있습니다

  1. 새 패치 만들기
  2. 기존 패치를 업데이트합니다.

새 패치를 생성하려면

  • 모듈의 버전 관리 탭으로 이동합니다. https://www.drupal.org/project/ <project_name>/git-instructions 페이지에 대한 링크입니다.
  • 작업할 분기를 선택하고 표시 버튼을 클릭합니다.
이미지 동기화

표시 버튼을 클릭하면 git 명령이 표시되고 터미널에서 명령을 복사 및 실행하고 디렉토리를 복제된 모듈로 변경합니다.

  • 문제를 해결하려면 변경하십시오.
  • 패치를 만드는 명령은 다음과 같습니다.
git diff > <issue-description (optional)>-<issue-number>-<comment-number>.patch
코어 제거

  1. 문제 설명은 문제의 제목이 되며 모든 문자는 소문자여야 하고 공백은 밑줄로 채워야 합니다. 이것은 선택 사항입니다.
  2. 문제 번호는 문제의 URL에 있습니다. 이것은 패치 파일의 이름을 지정할 때 필수 사항이 되는 문제에 대해 고유합니다.
  3. 댓글 번호는 패치가 업로드될 최신 댓글 ID입니다.
코멘트

패치에 새 파일을 추가해야 한다고 생각하십시오. 새 파일은 추적되지 않으며 git diff 명령은 파일을 추적하지 않습니다.

패치에 새 파일을 추가하려면

  1. git add 명령을 사용하여 새 파일 추가
  2. 운영
 git diff HEAD > <issue-description (optional)>-<issue-number>-<comment-number>.patch

기존 패치를 업데이트하려면

1. 패치를 추가해야 하는 프로젝트를 복제합니다.
2. 문제 페이지로 이동하여 패치 링크를 마우스 오른쪽 버튼으로 클릭하고 주소 복사 링크를 클릭합니다.
3. curl 또는 wget 명령을 사용하여 로컬에 패치를 다운로드합니다.

curl 명령을 사용하여 패치를 다운로드하려면:

 curl -O <paste the address link of the patch>


4. 패치를 적용하려면 다음 명령을 실행합니다.

 git apply <patch name>


5. 패치를 적용한 후 로컬에서 패치의 변경 사항을 받게 됩니다. 패치에 필요한 추가 변경 사항을 추가하고 새 패치를 만듭니다.

기존 패치를 업데이트할 때 interdiff 파일을 만들어야 합니다. Interdiff 파일은 이전 패치와 새 패치의 차이일 뿐입니다. 이렇게 하면 검토자가 새 패치에서 수행된 변경 사항을 알 수 있습니다.

다음은 interdiff를 만드는 명령입니다.

 interdiff <old-patch> <new patch> > interdiff_<old-patch-comment-number>-<new-patch-comment-number>.txt

이전 다운로드 패치 3302030-2.patch와 새로 업데이트된 패치 3302030-3.patch를 생성했다고 가정합니다. 이 두 파일 사이에 interdiff를 만들려면 다음 명령을 사용합니다.

 interdiff 3302030-2.patch 3302030-3.patch > interdiff_2-3.txt

패치 제출

패치를 만든 후 패치를 제출해야 합니다.

패치를 제출하려면 문제 페이지로 이동하십시오.

1. 메타데이터 발행

메타 데이터

문제 메타데이터에서 상태를 필요 검토로 변경합니다. 문제가 할당 된 경우 문제를 할당 해제하고 필요에 따라 태그를 추가하거나 제거합니다.

2. 이 기여에 기여

기인하다

조직에 근무하는 경우 관련 옵션을 확인하고 조직을 추가합니다. 이것을 추가하면 문제가 해결되면 크레딧이 귀하와 함께 조직에 제공됩니다.

3. 코멘트 섹션 아래에 패치에서 수행된 변경 사항에 대한 설명을 추가합니다.
4. 패치 파일, interdiff 파일을 선택하고 파일 아래에 업로드합니다.

파일

여기에 파일을 하나씩 추가하고 파일을 선택한 후 업로드를 누릅니다. 업로드를 클릭하면 파일이 업로드되고 아래 목록에 추가됩니다.

참고: 새 패치를 추가하는 동안 Interdiff는 필요하지 않습니다.

5. 파일을 업로드한 후 저장 버튼을 클릭합니다. 이렇게 하면 문제 페이지가 업데이트되고 새 댓글 번호로 업로드된 패치를 볼 수 있습니다.

핵심 문제에 대한 패치는 동일한 절차를 사용하여 제출해야 합니다.

패치 검토

이제 문제를 찾고 패치를 만들고 업로드하는 방법을 알게 되었습니다. 무엇 향후 계획? 올바른 패치가 최대한 빨리 커밋되도록 하려면 어떻게 해야 합니까? 패치를 검토하는 것은 문제를 진전시키는 데 똑같이 중요한 단계입니다. 코드 줄을 작성하는 것이 자신의 일이 아니라고 생각한다면 기존 패치를 검토해 보지 않으시겠습니까?

시작하기 전에 브라우저에 Dreditor 확장을 추가하는 것이 좋습니다.

드레디터

드레디터 확장

그것은 패치/interdiff 파일에 대한 '검토' 버튼을 제공합니다. 클릭하면 읽기 쉬운 형식으로 변경 사항이 표시됩니다.

검토

Dreditor의 '검토' 버튼

반점

Dreditor 없이 패치 파일 변경

패치 파일 변경 사항

이제 검토할 문제를 찾을 준비가 되었습니다!

  • '검토 필요' 상태의 문제를 필터링합니다.
  • 목록에서 선택하십시오.
  • 댓글을 읽고 문제에 업로드된 최신 패치를 선택하세요.
  • 패치가 테스트 케이스를 통과했고 녹색으로 바뀌었는지 확인하십시오.
패치 테스트 통과

테스트를 통과한 패치

  • 다음을 실행하여 패치 파일을 다운로드하고 로컬의 패치를 코어/모듈/테마/프로필에 적용합니다.
 git apply <patch-file-downloaded> -v
  • 예상대로 작동하는지 테스트하십시오 / 약간의 작업이 필요합니다.
  • 문제 상태를 변경하고 귀하의 요점을 뒷받침하는 이미지/비디오와 함께 의견을 추가하십시오. 귀하의 의견에는 패치가 최신 버전에 적용되었는지 여부, 문제를 재현하기 위해 어떤 단계를 수행했는지, 패치를 적용하기 전과 후의 문제 동작 등과 같은 세부 정보가 있어야 합니다.
  • 모두 괜찮아 보이면 상태를 'RTBC'로 변경합니다.
  • 추가 작업/변경 범위가 있는 경우 상태를 '작업 필요'로 업데이트합니다.

다른 기여 방법

코드 기여 외에도 Drupal 프로젝트에는 품질 및 도달 범위 개선을 포함하여 기여할 수 있는 많은 영역이 있습니다. 관심 분야에 따라 이 커뮤니티에 기여하는 방법을 선택할 수 있습니다. 기여 영역 중 일부:

  • 멘토링 - 기여 경험이 있는 경우 온라인 또는 직접 멘토가 되어 다른 사람들이 멘토가 되어 시작할 수 있도록 도울 수 있습니다.
  • 문서로 - Drupal 프로젝트의 모든 문서는 여러분과 마찬가지로 전 세계 사람들이 자유롭게 제공합니다.
  • 지식 공유 - Drupal 프로젝트에 기여하는 중요한 방법은 블로그 게시물을 작성하고, 지역 Drupal Group 모임, DrupalCamp 또는 DrupalCon에서 프레젠테이션을 하고, 트레이너가 되는 등 Drupal에 대한 지식을 공유하는 것입니다.
  • 이벤트 계획 - 밋업, 스프린트 등과 같은 가상 또는 직접 Drupal 이벤트를 조직하거나 자원 봉사합니다.
  • 마케팅별 - 전 세계의 다른 마케팅 팀과 협력하여 Drupal 서비스를 판매하는 모든 사람이 공유하고 사용할 수 있는 Drupal 브랜드 마케팅 및 영업 자료를 만들 수 있습니다.
  • 모듈/테마 기여 - 모듈, 배포판 및 테마를 포함한 Drupal 프로젝트에 대한 협업은 Drupal 커뮤니티에 기여하는 필수적인 방법입니다.

연결 및 업데이트를 유지하십시오!

• 여유

  • Drupal 커뮤니티에는 단순히 'Drupal'로 알려진 기본 Slack 작업 공간이 있습니다. - - http://drupal.slack.com/
  • #support, #bugsmash, #contribute, #drupal10rediness 등과 같은 다양한 주제에 대한 다양한 채널을 찾을 수 있습니다.

• 블로그

  • Drupal 커뮤니티의 구성원은 Drupal에 대한 블로그 게시물을 작성합니다.
  • 당신도 그들 중 하나가 될 수 있습니다!

• 소셜 미디어 - Twitter, LinkedIn 등

  • Drupal 관련 프로필을 팔로우하면 Drupal에서 일어나는 모든 진행 중인 변경/이벤트를 계속 업데이트할 수 있습니다.

Drupal 행동 강령

Drupal은 오픈 소스이고 커뮤니티가 성장함에 따라 여기까지 온 것을 보존하는 것이 필수적입니다. 다음은 행동과 관련하여 몇 가지 사항입니다.

  • 협력하라

Drupal은 더 큰 커뮤니티를 가지고 있기 때문에 협업이 핵심입니다. 팀으로 일함으로써 우리는 drupal 플랫폼에서 최고를 가져올 수 있습니다.

  • 예의를 지켜라

모든 사람이 Drupal에 가치 있는 기여를 할 때 커뮤니티와 그 구성원은 서로를 존중합니다.

  • 확신이 서지 않을 때는 도움을 요청하십시오

Drupal에서 완벽한 사람은 없으며, Drupal 커뮤니티의 모든 것을 알 수 있는 사람은 아무도 없습니다. 질문을 하면 많은 문제를 해결할 수 있으므로 질문하는 것이 좋습니다.

  • 괴롭힘의 피해자이거나 목격자이거나 Slack 관리에 도움이 필요한 경우 동료/slack 관리자에게 문의하세요.

https://www.drupal.org/dcoc 은 깊이 있는 행동 강령을 찾을 수 있는 문서에 대한 링크입니다.

마지막 생각들

Drupal에 살고 숨쉬는 조직으로서 우리는 항상 우리가 할 수 있는 모든 방법으로 프로젝트에 환원하기 위해 최선을 다하고 있습니다. 다음 프로젝트를 위해 신뢰할 수 있는 Drupal 대행사를 찾고 계시다면 저희 전문가들이 기꺼이 도와드릴 것입니다. 오늘 우리에게 이야기하십시오!