GitHub 레이블

트리아지 담당자, 코어 개발자, 봇은 GitHub에서 레이블을 추가하여 이슈와 풀 리퀘스트를 분류할 수 있습니다. 여러 레이블이 두 사용 사례에 공통으로 쓰이지만, 일부는 한쪽 전용입니다. 아래 목록은 완전하지 않을 수 있지만, 시작하는 데에는 충분할 것입니다. 전체 목록은 여기를 참조하십시오.

유형 레이블

다음 레이블은 이슈의 유형을 지정하는 데 사용합니다:

  • type-bug: 예기치 않은 동작, 버그 또는 예외(하드 크래시 제외)에 사용하는 레이블입니다.

  • type-crash: 인터프리터의 하드 크래시에 사용하는 레이블이며, 코어 덤프가 함께 발생할 수 있습니다.

  • type-feature: 기능 요청이나 개선에 사용하는 레이블입니다. 기능 요청에는 버전 레이블이 필요하지 않습니다. 기능은 main 브랜치에만 추가된다는 것이 암묵적인 전제이기 때문입니다. 이슈를 등록하기 전에 Ideas Discourse category에서 개선 사항을 논의할 수 있습니다.

  • type-refactor: 사용자에게 보이는 동작을 바꾸지 않는 일반적인 코드 리팩터링에 사용하는 레이블입니다.

  • type-security: 보안 이슈에 사용하는 레이블입니다. Reporting security issues in Python도 참조하십시오.

구성 요소 레이블

다음 레이블은 주로 이슈/PR이 코드베이스의 어느 부분에 영향을 미치는지 지정하는 데 사용합니다:

  • stdlib: Lib 디렉터리에 있는 (Python으로 작성된) 표준 라이브러리 모듈에 사용하는 레이블입니다.

  • extension-modules: Modules 디렉터리에 있는 (C로 작성된) 표준 라이브러리 모듈에 사용하는 레이블입니다.

  • interpreter-core: Objects, Python, Grammar, Parser 디렉터리에 있는 (주로 C로 작성된) 인터프리터 코어 관련 변경에 사용하는 레이블입니다.

  • docs: Doc 디렉터리에 있는 (reStructuredText로 작성된) 문서, 독스트링, 코드 주석에 사용하는 레이블입니다.

  • tests: Lib/test 디렉터리에 있는 (Python으로 작성된) 테스트와 테스트, unittest, doctest 관련 기타 변경에 사용하는 레이블입니다.

OS 레이블

다음 레이블은 어떤 운영 체제가 영향을 받는지 지정하는 데 사용합니다. 대부분의 이슈는 모든 시스템에 영향을 미치거나 Unix에만 해당하므로, Unix 전용 레이블은 따로 두지 않습니다.

PEP 11에 정의된 지원 등급에 속하지 않는 플랫폼의 이슈에는 OS-unsupported 레이블을 사용하십시오. 이 레이블을 붙이면 이슈가 GitHub 프로젝트에 추가되며, 그곳에서 더 세부적으로 분류할 수 있습니다. 플랫폼 전문가 목록도 참조하십시오.

주제 레이블

이 레이블은 이슈/PR에 구체적인 주제 영역이 있을 때 그 영역을 나타내는 데 사용합니다. 여기에는 특정 모듈/패키지와 일반적인 관심 분야가 모두 포함됩니다.

관련 전문가들은 이 레이블을 구독하도록 권장되므로, 이 레이블을 붙이는 것은 해당 전문가에게 알리는 방법이기도 합니다. 레이블에 따라서는 이슈가 GitHub 프로젝트에 자동으로 추가될 수도 있습니다.

GitHub에서 전체 주제 레이블 목록을 볼 수 있습니다.

버전 레이블

이 레이블은 영향을 받는 Python 버전을 나타내는 데 사용합니다. 사용할 수 있는 버전 레이블(3.N 형식)은 새 기능 릴리스가 만들어지거나 지원이 종료될 때마다 갱신됩니다.

활성 브랜치 목록에 대해서는 브랜치 상태 페이지도 참조하십시오.

기타 레이블

  • build/performance: 각각 빌드 과정 또는 성능 관련 이슈에 사용하는 레이블입니다.

  • easy: 쉽다고 판단되는 이슈에 사용하는 레이블입니다.

  • infra: 프로젝트의 인프라(예: GitHub Actions, dependabot, 빌드봇) 관련 이슈에 사용하는 레이블입니다.

  • invalid: 스팸 이슈/PR을 표시하는 데 사용하는 레이블입니다.

  • pending: 추가 피드백이 없으면 닫힐 이슈/PR에 사용하는 레이블입니다.

  • release-blocker/deferred-blocker: 수정되지 않으면 각각 현재 릴리스 또는 다음 릴리스를 보류시키는 이슈/PR에 사용하는 레이블입니다. 트리아지 담당자는 릴리스 전에 반드시 수정해야 하는 이슈에 이 레이블을 설정할 수 있으며, 해당 브랜치의 릴리스 관리자가 이를 검토하여 실제로 해당하는지 판단하고 적절히 레이블을 제거하거나 유지합니다.

  • sprint: 공식 스프린트 중에 작업 중인 이슈/PR을 쉽게 필터링하는 데 사용하는 레이블입니다.

  • stale: 한동안 활동이 없었던 이슈/PR에 사용하는 레이블입니다.

  • triaged: 트리아지 담당자가 유효하다고 인정한 이슈에 사용하는 레이블입니다.

PR 전용 레이블

다음 레이블은 풀 리퀘스트에만 적용됩니다. 이 레이블은 봇이 자동으로 설정하거나, 특정 봇 동작을 실행하기 위해 사람이 추가합니다.

  • DO-NOT-MERGE: 현재 상태로는 병합하면 안 되는 PR에 사용하는 레이블입니다. 또한 miss-islington이 PR을 자동으로 병합하지 못하게 합니다.

  • needs backport to X.Y: PR을 어느 브랜치로 백포트해야 하는지 나타내는 데 사용합니다. PR이 병합되면 miss-islington이 이 레이블이 가리키는 버전들에 대한 백포트 PR 생성을 자동으로 시도합니다. 브랜치 목록과 각 브랜치에 백포트할 수 있는 PR 유형에 대해서는 파이썬 브랜치 상태도 참조하십시오.

  • skip issue: 대응하는 이슈가 필요 없는 사소한 변경(예: 오타 수정, 주석 변경, 섹션 문구 수정)에 사용하는 레이블입니다.

  • skip news: NEWS 항목이 필요 없는 PR에 사용하는 레이블입니다. 어떤 경우에 NEWS 항목을 생략할 수 있는지는 NEWS 및 What’s New in Python 갱신하기 섹션에서 자세히 다룹니다.

  • 🔨 test-with-buildbots: 병합 전에 추가 테스트가 필요할 때 빌드봇 무리로 최신 커밋을 테스트하는 데 사용하는 레이블입니다. 완료하는 데 몇 시간이 걸릴 수 있습니다.

  • 🔨 test-with-refleak-buildbots: 최신 커밋에서 참조 누수 빌드봇을 실행하는 레이블입니다. 코드에 누수가 있을 수 있을 때 유용합니다.

  • awaiting action: 이 레이블들은 PR의 단계를 나타내기 위해 bedevere가 붙이고 사용하므로 수동으로 붙여서는 안 됩니다.