이슈 추적기 사용하기

issue tracker는 코드베이스 및 풀 리퀘스트와 함께 GitHub에서 호스팅됩니다.

참고

이슈 추적기를 GitHub로 옮기기 전에는 Python이 전용 Roundup 인스턴스를 이슈 추적기로 사용했습니다. 그 old bug tracker는 bugs.python.org 도메인에서 호스팅되었습니다(줄여서 bpo 또는 BPO라고 부르기도 합니다). 기록 보존을 위해 해당 도메인에서 읽기 전용 버전을 이용할 수 있습니다. 모든 bpo 데이터는 GitHub의 현재 이슈 추적기로 이전되었습니다. 예전 이슈는 여전히 bpo-NNN 형식으로 참조되며, bpo-12345는 https://bugs.python.org/issue12345를 가리킵니다.

이슈 보고하기

Python에서 버그를 발견했다고 생각되면 issue tracker에 보고할 수 있습니다. 문서 버그도 그곳에 보고할 수 있습니다.

이 개발자 가이드에 관한 이슈를 등록하려면 대신 devguide repository에 등록하십시오.

버그가 이미 존재하는지 확인하기

이슈 보고서를 등록하기 전 첫 단계는 문제가 이미 보고되었는지 확인하는 것입니다. 문제가 기존 이슈인지 확인하면 다음과 같은 이점이 있습니다:

  • 문제가 이미 해결되었는지, 또는 다음 릴리스를 위해 수정되었는지 알 수 있습니다.

  • 여러분과 개발자들의 시간을 절약할 수 있습니다.

  • 문제를 고치려면 무엇을 해야 하는지 알 수 있습니다.

  • 이슈를 재현하는 방법 등 추가 정보가 필요한지 판단할 수 있습니다.

이슈가 이미 존재하는지 확인하려면 이슈 페이지의 버그 목록 위에 있는 검색 상자를 사용해 버그 데이터베이스를 검색하십시오. 자세한 내용은 이슈 검색하기를 참조하십시오.

새 이슈 만들기

보고하려는 문제가 아직 issue tracker에 없다면 버그 목록 위 검색 상자 오른쪽에 있는 초록색 New issue 버튼을 사용해 보고할 수 있습니다. 아직 GitHub에 로그인하지 않았다면 이때 로그인하라는 메시지가 표시됩니다.

먼저 보고하려는 문제의 종류를 선택해야 합니다. 선택할 수 있는 항목에는 예를 들어 다음과 같은 것이 있습니다:

  • 버그 보고: 기존 기능이 예상대로 작동하지 않습니다.

  • Documentation: 문서가 누락되었거나, 잘못되었거나, 오해의 소지가 있습니다.

  • 기능 또는 개선: Python에 새로운 기능을 제안합니다.

  • Report a security vulnerability: 보안 취약점을 비공개로 보고합니다.

선택한 항목에 따라 전용 양식 템플릿이 나타납니다. 특히 버튼 중 하나는 실제로 Python Discourse (discuss.python.org)로 연결된다는 점을 알 수 있는데, 이곳에서 Python과 관련된 많은 논의가 이루어집니다.

제출 양식에는 작성해야 하는 필드가 두 개뿐입니다:

  • Title 필드에는 문제를 아주 짧게 설명하는 내용을 입력하십시오. 열 단어 미만이 좋습니다. GitHub 레이블을 사용하므로 [feature] 같은 “레이블”은 넣지 마십시오.

  • Write 필드에는 해당 필드에 미리 채워진 템플릿의 안내를 참고하여 문제를 자세히 설명하십시오. 기대한 동작, 실제로 일어난 동작, 문제를 재현하는 방법을 반드시 포함하십시오. 관련된 확장 모듈이 있는지와 사용한 하드웨어 및 소프트웨어 플랫폼(필요한 경우 버전 정보 포함)도 반드시 포함하십시오. 특히 어떤 버전의 Python을 사용했는지 반드시 적으십시오.

누군가가 이슈를 알아야 한다고 생각되면 댓글에서 @username으로 그 사람을 태그할 수 있습니다. 특정 영역에서 누가 태그되거나 담당자로 지정되기를 원하는지 알아보려면 전문가 색인를 참고하십시오.

Assignees(담당자), Labels(레이블), Projects(프로젝트)와 같은 추가 필드가 여러 개 있습니다. 이 필드들은 트리아지 담당자와 코어 팀 구성원이 채우며, 이슈 트리아지 페이지에서 다룹니다. Python 사용자로서 이슈를 보고할 때는 이 필드들을 신경 쓰지 않아도 됩니다.

이슈 다루기

이 절에서는 이슈 검색, 댓글 달기, 이슈 팔로우 등 이슈 추적기에서 흔히 하는 작업을 다룹니다.

이슈 검색하기

GitHub search syntax를 사용하거나, 검색 쿼리를 대신 생성해 주는 대화형 advanced search 양식을 사용하십시오.

이슈 목록 위의 Labels 드롭다운이나 label:name 검색 한정자를 사용하여 레이블별로 필터링하면 결과 범위를 좁힐 수도 있습니다. CPython 저장소에서 사용하는 레이블의 개요는 GitHub 레이블를 참고하십시오.

이슈와 댓글 서식 지정하기

훌륭한 GitHub에서 글을 작성하고 서식을 지정하는 방법에 관한 초보자용 안내서가 있습니다. 적극 추천합니다.

여기서 바로 알려 드릴 수 있는 유용한 팁 하나는, 긴 로그를 댓글로 붙여 넣고 싶다면 대신 파일을 첨부하라는 것입니다. 그래도 댓글에 붙여 넣으려면, 가독성을 위해 <details></details>를 사용하여 collapsed section으로 감싸십시오.:

<details>
<summary>This is the summary text, click me to expand</summary>

Here goes the long, long text.
It will be collapsed by default!
</details>

파일 첨부하기

파일을 댓글 필드로 끌어다 놓고 업로드가 끝날 때까지 기다리면, GitHub가 댓글 본문에 파일 링크를 자동으로 넣어 줍니다.

이슈 팔로우하기

이슈를 구독하려면 사이드바에 있는 🔔 Subscribe 버튼을 클릭하십시오. 다른 사람을 이슈에 구독시키려면 댓글에서 @username으로 그 사람을 태그하십시오. 다른 사람이 여러분을 태그했지만 이 이슈가 자신과 관련이 없다고 판단했다면 사이드바에 있는 🔕 Unsubscribe 버튼을 클릭하십시오. 직접 만들었거나 댓글을 단 이슈는 자동으로 구독된다는 점에 유의하십시오.

의존성 및 중복 추적하기

의존성을 추적하기 위해 이슈 간 관계를 생성할 수 있으며, 메타 이슈의 경우 다른 관련 이슈에 연결하기 위해 하위 이슈를 추가할 수 있습니다.

댓글에 Duplicate of #NNN이라고 작성하면 이슈와 PR을 중복으로 표시할 수 있습니다.

마네킹 계정

bugs.python.org(BPO)에서 GitHub으로 이전된 오래된 이슈 가운데 작성자나 댓글 작성자가 코어 팀 구성원이 아니었던 경우에는 해당 사용자의 GitHub 계정에 직접 연결하지 않기로 했습니다. GitHub의 python 조직에 속하지 않은 사용자는 자동 가져오기로 생성된 댓글이 자신의 이름으로 표시되는 것을 원하지 않을 수 있습니다. 또한 애초에 BPO에 GitHub 계정을 연결하지 않은 사용자도 있었으므로, 계정이 있더라도 연결할 수 없었습니다.

이러한 경우에는 이슈에서 오간 대화를 따라가기 쉽도록 “마네킹” 계정이 표시됩니다. 사용자가 BPO 프로필에 GitHub 계정 이름을 공유한 경우에는 그 이름을 사용합니다. 그렇지 않으면 기존 BPO 사용자 이름을 대신 사용합니다.

처리 결과에 동의하지 않는 경우

사람이라면 누구나 때때로 의견이 다를 수 있습니다. 무엇보다도 이 처리 결과에 관심과 고민, 그리고 자원봉사자들의 시간이 들어갔다는 점을 존중해 주십시오. 기여자들은 매우 다양한 문화적·언어적 배경을 지니고 있다는 점을 명심하십시오. 문화와 언어를 넘나드는 소통을 참고하십시오.

이 점을 염두에 두고 이슈 처리 결과와 관련하여 달린 댓글을 시간을 들여 살펴보십시오. 다시 생각해 보면, 해결 단계가 처음 생각했던 것보다 더 합리적으로 보일 수 있습니다.

그래도 처리 결과가 잘못되었다고 생각한다면 Core Development Discourse category에 신중하게 질문을 올리십시오. 코어 개발자들 사이에서 합의가 이루어진 뒤에도 논쟁을 이어 가거나 무례하게 대응하면 다른 사람을 설득하기 어렵습니다.

다시 말씀드리지만, 코어 개발자가 닫은 이슈는 이미 신중한 검토를 거친 것입니다. 닫힌 이슈를 다시 열지 마십시오. 이슈는 complete 또는 not planned 중 하나를 사유로 지정하여 닫을 수 있습니다.