백포트를 위한 풀 리퀘스트 자동 상정
컴파일러나 표준 라이브러리(또는 다른 구성 요소)의 회귀가 수정되면, 해당 패치를 그것이 처음 발생한 릴리스 채널(beta 또는 stable, backports 참고)에 백포트할지 여부를 평가합니다. 관련 팀이 수정 사항을 검토하여 백포트를 수락하거나 거부합니다.
중요한 회귀를 수정하는 패치에 더 많은 가시성을 부여하고 팀이 결정을 내리는 데 도움을 주기 위해, 저희 Zulip 채팅에 토론 주제가 자동으로 개설될 수 있습니다(예시).
백포트를 위한 풀 리퀘스트 자동 상정은 git 저장소의 모든 새 패치를 스캔하여 첫 코멘트에서 텍스트 마커(예: “Fixes #123”, GitHub documentation 참조)를 찾도록 설정할 수 있습니다. 이러한 텍스트가 발견되고 수정 대상 이슈가 P-high 또는 P-critical로 분류되어 있으며 required-issue-label 레이블 중 하나(예: regression-from-*)를 가지고 있는 경우, 핸들러는 설정된 add-labels 레이블을 적용합니다.
설정
자동 백포트 레이블링은 triagebot.toml에 [backport.<foo>] 테이블이 하나 이상 설정되어 있는 저장소에서 활성화됩니다:
[backport.foo]
required-pr-labels = ["T-compiler"]
required-issue-label = "regression-from-stable-to-beta"
add-labels = ["beta-nominated"]
[backport.bar]
required-pr-labels = ["T-compiler"]
required-issue-label = "regression-from-stable-to-stable"
add-labels = ["beta-nominated", "stable-nominated"]
[backport.baz]
required-pr-labels = ["T-libs"]
required-issue-label = "regression-from-stable-to-stable"
add-labels = ["stable-nominated"]
foo, bar, baz는 이들을 구분하기 위한 고유 식별자의 예시이며, 무엇이든 될 수 있습니다.
필드 설명:
required-pr-labels: 풀 리퀘스트가 열릴 때 반드시 가지고 있어야 하는 레이블 목록입니다(팀 레이블T-*사용을 권장합니다)required-issue-label: 회귀가 그러한 것으로 식별되기 위해 반드시 가지고 있어야 하는 레이블입니다. 다음 중 하나일 수 있습니다:regression-from-stable-to-nightly,regression-from-stable-to-beta또는regression-from-stable-to-stable.add-labels: 모든 조건이 충족될 경우 풀 리퀘스트에 부여될 레이블 목록입니다.
구현
src/handlers/backport.rs를 참고하십시오.