버그 분류 및 문제 큐레이션 #

이슈 트래커 는 기능 요청, 버그 보고, 작업할 주요 프로젝트 식별 및 우선 순위 논의를 위한 중앙 위치 역할을 하기 때문에 프로젝트의 커뮤니케이션에 중요합니다 . 이러한 이유로 문제 목록을 관리하고 문제에 레이블을 추가하고 해결되었거나 해결할 수 없는 문제를 종료하는 것이 중요합니다.

문제 분류에는 Matplotlib 내부에 대한 특별한 전문 지식이 필요하지 않으며, 프로젝트에 매우 중요하며 문제 분류에 참여하는 모든 사람을 환영합니다! 그러나 Matplotlib 조직에 속하지 않은 사람은 이정표를 변경하거나 레이블을 추가하거나 문제를 종료할 수 있는 권한 이 없습니다 . GitHub 권한이 충분하지 않은 경우 작업(예: 레이블 추가, 문제 종료)을 수행하고 @matplotlib/triageteam권장 사항을 태그한 댓글을 남겨주세요!

문제를 개선하기 위한 작업 #

문제를 개선하면 성공적으로 해결될 가능성이 높아집니다. 좋은 문제 제출에 대한 지침은 여기 에서 찾을 수 있습니다 . 제3자는 유용한 피드백을 제공하거나 문제에 대한 의견을 추가할 수도 있습니다. 일반적으로 다음 작업이 유용합니다.

  • 코드 샘플과 같이 문제를 재현하기 위해 요소가 누락된 문제 문서화

  • 코드 형식의 더 나은 사용을 제안합니다(예: 마크다운의 트리플 백 틱).

  • 해결해야 할 문제에 대해 보다 명확하게 설명하기 위해 제목과 설명을 재구성할 것을 제안합니다.

  • 관련 문제 또는 토론에 연결하고 관련 방법을 간략하게 설명합니다. 예를 들어 "이와 유사한 시도에 대해서는 #xyz도 참조하십시오." 또는 "동일한 일이 보고된 #xyz도 참조하십시오."는 맥락을 제공하고 토론에 도움이 됩니다.

  • 문제가 재현 가능한지 확인

  • 문제를 기능 요청, 오랜 버그 또는 회귀로 분류

분류 팀 #

분류 팀에 가입하려면 다음을 수행하십시오.

  1. 2-3개의 문제를 올바르게 분류합니다.

  2. 분류 팀 의 누군가 (공개 또는 비공개)에게 귀하를 분류 팀에 추천해 달라고 요청하십시오. 분류된 문제에 대해 누군가와 함께 일했다면 그 사람이 질문하기에 좋은 사람이 될 것입니다.

  3. 당신의 새로운 힘을 책임감 있게 행사하세요!

커밋 또는 분류 권한이 있는 사용자는 분류 팀에 참여하도록 초대할 사용자를 지명할 수도 있습니다.

핵심 및 분류 팀 구성원을 위한 분류 작업 #

위의 사항 외에도 핵심 팀과 분류 팀의 구성원은 다음과 같은 중요한 작업을 수행할 수 있습니다.

  • 문제 및 PR에 대한 레이블 업데이트: 사용 가능한 github 레이블 목록을 참조하십시오 .

  • 심사 문제:

    • 문제를 재현하십시오 . 게시된 코드가 버그 라벨인 경우 "상태: 확인된 버그"로 문제를 표시합니다.

    • 회귀 를 식별하고 보고된 버그가 최신 버전의 Matplotlib에서 예상대로 작동했는지 확인하고 그렇다면 마지막 작동 버전을 확인합니다. 회귀는 다음 버그 수정 릴리스에 대한 이정표가 되어야 하며 "릴리스 중요"로 레이블이 지정될 수 있습니다.

    • 사용 질문 을 닫고 리포터에게 정중하게 담화 또는 스택 오버플로를 사용하도록 지시하고 "커뮤니티 지원"으로 표시합니다.

    • 중복된 문제 인지 확인한 후 중복 문제를 닫습니다 . 이상적으로는 원래 제출자가 토론을 이전의 중복 문제로 이동합니다.

    • 추가 정보를 추가하기 위해 시간(최소 일주일)을 떠난 후 복제할 수 없는 문제를 닫습니다 .

문제 분류를 위한 일반적인 워크플로 #

다음 작업 흐름 [ 1 ] 은 문제 분류에 접근하는 좋은 방법입니다.

  1. 문제를 열어준 기자에게 감사합니다.

    문제 추적기는 라이브러리를 사용하는 것 이상으로 많은 사람들이 Matplotlib 프로젝트 자체와 처음으로 상호 작용하는 것입니다. 따라서 환영하고 즐거운 경험이 되기를 바랍니다.

  2. 사용법 질문인가요? 그렇다면 공손한 메시지로 닫으십시오.

  3. 필요한 정보가 제공됩니까?

    포스터가 이슈 템플릿을 채웠는지 확인합니다. 중요한 정보(Python 버전, 사용된 Matplotlib 버전, OS 및 백엔드)가 누락된 경우 원본 포스터에 정보 제공을 정중하게 요청하십시오.

  4. 문제가 최소화되고 재현 가능합니까?

    버그 보고의 경우 보고자에게 재현 가능한 최소한의 예를 제공하도록 요청합니다. 좋은 설명은 Matthew Rocklin의 이 유용한 게시물 을 참조하십시오 . 예를 재현할 수 없거나 최소한의 예가 아닌 경우 기자에게 예를 제공하거나 제공된 예를 단순화할 수 있는지 자유롭게 문의하십시오. 최소한의 재현 가능한 예제를 작성하는 것은 힘든 작업임을 인정하십시오. 기자가 어려움을 겪고 있다면 직접 작성해 볼 수 있습니다.

    재현 가능한 예제가 제공되었지만 단순화된 내용이 표시되는 경우 더 간단한 재현 가능한 예제를 추가하십시오.

    문제를 재현할 수 없는 경우 OS, Python 및 Matplotlib 버전과 함께 보고해 주세요.

    이 단계 또는 이전 단계에서 추가 정보가 필요한 경우 문제에 "상태: 설명 필요"라는 레이블을 지정하십시오.

  5. 이것이 회귀입니까?

    버그 없는 라이브러리를 위해 노력하는 동안 회귀가 최우선 순위입니다. 작동 하던 사용자 코드가 손상된 경우 다음 패치 릴리스에서 수정해야 합니다!

    이전 버전의 Matplotlib에 대해 재생산 코드를 실행하여 회귀가 발생한 시기를 확인하십시오. 릴리스된 버전의 Matplotlib(마지막으로 작업한 버전을 가져오기 위해) 또는 git bisect 를 사용하여 손상된 첫 번째 커밋을 찾을 수 있습니다.

  6. 중복 문제인가요?

    미결 문제가 많이 있습니다. 새 문제가 중복된 것 같으면 원래 문제를 가리킵니다. 명확한 중복이거나 중복이라는 합의가 있는 경우 닫습니다. 여전히 기자에게 감사를 표하고 그들이 원래 문제에 차임하도록 격려하고 문제를 해결하도록 노력하십시오.

    새 문제가 더 좋거나 약간 다른 예와 같은 관련 정보를 제공하는 경우 원래 게시물에 댓글 또는 편집으로 원래 문제에 추가합니다.

    종료된 문제에 "상태: 중복" 레이블 지정

  7. 제목이 문제를 정확하게 반영하는지 확인하십시오. 필요한 권한이 있는 경우 명확하지 않은 경우 직접 편집하십시오.

  8. 문제가 문서에 관한 것이라면 "문서", 분명한 버그인 경우 "버그", 새로운 기능 요청인 경우 "새로운 기능"과 같은 관련 레이블을 추가합니다.

    문제가 명확하게 정의되어 있고 해결 방법이 상대적으로 간단해 보이는 경우 문제에 "좋은 첫 번째 문제"라는 레이블을 지정합니다(수정 사항에 대한 설명 또는 코드 베이스에서 시작하기 위해 살펴봐야 할 위치에 대한 힌트 포함).

    추가적인 유용한 단계는 관련된 경우 "GUI/Qt" 레이블과 같은 해당 모듈에 태그를 지정하는 것입니다.

검토를 돕기 위한 PR 작업 #

코드 검토도 권장됩니다. 기여자와 사용자는 검토 지침 에 따라 검토 프로세스에 참여할 수 있습니다.

감사의 말 #

이 페이지는 scikit-learn 프로젝트 에서 약간 수정되었습니다 .