Drupal 코어에 패치를 어떻게 제공합니까?


10

Drupal 코어에 패치를 제공하는 적절한 프로세스는 무엇입니까?

Drupal 코어에서 버그를 찾아서 수정 하고 패치를 작성 한다고 가정 해 봅시다 . 어떻게 제출합니까?

버그가 Drupal 7에있는 경우 Drupal 8에서도 버그를 수정하고 두 개의 패치를 제출해야합니까? 문서 버그 / 개선에도 적용됩니까?

모든 패치에도 단위 테스트가 필요합니까?


3
당분간 drupal.org에 계정이 있고 git 사용 방법, 코어 확인 방법 및 git 패치 작성 방법을 알고 있다고 가정하여 답변을 찾고 있습니다. 좋은 답변을 얻으면 주석을 달거나 답변을 추가하여이 프로세스를 설명 할 수 있습니다.
mpdonadio

이는 meta.drupal.stackexchange.com/questions/2325 에서 제기 된 핵심 관리자 인 문제에 대한 응답 이므로 사후 통지가 시행됩니다. 프로세스, 특히 위의 질문에 대한 좋은 요약이 필요합니다. 다른 페이지로 링크 된 답변은 다운 보트 및 / 또는 삭제됩니다. 이 질문이 DA 사용자가 핵심 문제를 발견했을 때 지적 할 수있는 리소스가되기를 바랍니다.
mpdonadio

답변:


6

버그가 Drupal 7에있는 경우 Drupal 8에서도 버그를 수정하고 두 개의 패치를 제출해야합니까?

개발중인 버전 (이 경우 Drupal 8)과 이전 버전 (Drupal 7)에 버그가있는 경우 먼저 현재 개발 된 버전을 수정 한 다음 이전 버전을 수정해야합니다.

예를 들어, 버그가 제거되었거나 이미 변경된 기능에 대한 버그로 인해 최신 개발 버전에 버그가없는 경우 현재 개발 된 버전보다 먼저 해당 버전에 대한 패치를 제공해야합니다.

수행되는 워크 플로우는 다음과 같습니다.

  • 아직 개발중인 경우에도 (최신 버전의 경우 Drupal 8의 경우와 같이) 먼저 패치를 작성하여 검토를 위해 제출합니다.
  • 해당 패치가 Drupal에 적용되면 이전 버전에 적용되는 패치가 작성되어 검토를 위해 제출됩니다.

두 개의 Drupal 버전에 대한 패치를 동시에 작성할 수 있지만 최신 Drupal 버전에 대한 패치는 변경이 필요할 수 있으므로 현재 개발 된 버전의 패치에 대한 작업은 두 개의 다른 패치에서 작업하는 것보다 낫습니다. 변경됩니다.

백 포트 정책 도 참조하십시오 .

문서 버그 / 개선에도 적용됩니까?

그렇습니다. 이 경우에도 현재 개발 된 버전이 문서가 참조하는 기능 / 방법을 제거한 경우 이전 버전에 대한 패치를 제공해야합니다.

모든 패치에도 단위 테스트가 필요합니까?

패치가 설명서 용인 경우 테스트가 필요하지 않습니다. http://qa.drupal.org에서 실행되는 테스트 봇 은 패치가 적용된 후 Drupal 코드를 확인합니다. 패치에 구문 오류가 발생하는 경우 (예 : 주석이 필요하기 전에 닫 혔기 때문에) 테스트 봇은 테스트가 실행되기 전에 패치에 대한 오류를보고합니다.

패치가 새로운 기능을위한 것이라면 테스트가 필요합니다.

패치가 버그를 수정하는 경우 특정 기능을 검사하는 테스트가없는 경우 관리자가 테스트를 요구할 수 있습니다. 테스트는 일반적으로 나중에 동일한 코드를 변경할 때 동일한 버그를 다시 도입하지 않도록하기 위해 필요합니다. 버그가 단순히 초기화되었지만 함수 / 메소드에서 사용되지 않은 변수 인 경우 테스트가 필요하지 않을 가능성이 있습니다.


동일한 문제에 여러 코어 버전에 대한 패치가 포함될 수 있습니까?
mpdonadio

1
문제가 둘 이상의 버전에 적용되는 경우 관심있는 모든 버전에 대한 패치가 포함될 수 있습니다.
kiamlaluno

항상 D8 패치가 먼저 제출 된 다음 D7 버전이 제출됩니까? 아니면 동시에 제출하는 것이 적절한 경우가 있습니까?
mpdonadio

두 가지 버전의 패치를 제출할 수 있지만 가장 먼저 적용되는 패치는 최신 버전입니다. 패치를 변경해야 할 수 있으므로 최신 버전의 패치를 먼저 만드는 것이 좋습니다.
kiamlaluno

3

drupal.org의 모든 프로젝트 페이지 상단에는 "버전 관리"탭이 있습니다. 특정 프로젝트에 대한 모든 코드 저장소 옵션에 대한 훌륭한 개요를 제공 할뿐만 아니라 모든 git 명령 예제도 프로젝트에 맞게 조정되었습니다. 대화식으로 특정 버전으로 변경할 수도 있습니다.

Drupal 코어의 경우 http://drupal.org/project/drupal/git-instructions에서 해당 페이지를 찾을 수 있습니다.

그런 다음 패치를 만들었을 때 패치 작업을 설명하는 문제에 패치 파일을 첨부하기 만하면됩니다.

두 가지 중요한 점은 패치가 ".patch"로 끝나는 지 확인하고 상태를 "검토 필요"로 설정하는 것입니다. 이를 통해 테스트 봇이이를 확인하고 자동으로 테스트를 실행합니다.

새로운 코드는 항상 테스트를 동반해야합니다 .

이것은 프로젝트별로 끌 수 있으며 일부는 할 수 있습니다. Drupal 코어의 경우 모든 패치가 테스트됩니다.

자세한 내용은 http://drupal.org/contribute/development 에서 찾을 수 있습니다 .


이것은 좋은 시작입니다.
mpdonadio
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.