Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

백포트

심각한 회귀를 수정하거나, 처음 병합할 때 발견하지 못한 의도치 않은 변경을 되돌리기 위해 컴파일러 수정 사항을 stable 채널이나 beta 채널, 또는 두 채널 모두에 백포트해야 하는 경우가 있습니다. 이슈와 회귀의 우선순위를 정하는 방법은 우선순위 지정도 참고하십시오.

stable 채널에 백포트가 적용되면 Rust 프로젝트는 패치 릴리스를 출시합니다(예를 들어 최초 stable 릴리스 1.87.0 다음에 1.87.1 포인트 릴리스가 나올 수 있습니다).

백포트 리뷰에 상정하기

GitHub 풀 리퀘스트에 레이블을 붙여 변경 사항의 백포트를 제안할 수 있습니다. 패치를 beta 채널에 백포트해야 한다면 beta-nominated를 추가하고, stable 채널에도 백포트해야 한다면 stable-nominated도 추가하십시오. 풀 리퀘스트에 T-compiler 레이블도 있는지 확인하십시오.

어떤 경우든 풀 리퀘스트를 백포트에 상정할 때는 코멘트를 추가하여 컴파일러 팀 백포트 리뷰어에게 이 변경을 백포트해야 하는 이유를 설명해야 합니다.

백포트 상정이 반드시 승인되는 것은 아닙니다. 백포트 상정의 승인 또는 거부 기준은 아래 백포트를 승인해야 합니까 절을 참고하십시오.

stable 채널까지 넘어간 beta 회귀는 stable 백포트 상정이 필요하며, 승인되면 이후 패치 릴리스도 필요합니다.

컴파일러 팀은 치명적인 이슈(P-critical 레이블이 붙은 이슈)가 stable 릴리스까지 넘어가지 않도록 노력합니다.

컴파일러 백포트 상정 리뷰하기

beta-nominated 또는 stable-nominated 레이블 중 하나가 붙으면 Zulip의 #t-compiler/backports 채널에 새 스레드가 자동으로 열립니다. 컴파일러 팀 구성원은 이 Zulip 스레드에서 비동기적으로 백포트 찬성 투표를 하거나 우려를 제기할 수 있습니다. 컴파일러 팀 구성원으로서 이 스레드의 알림을 받고 싶다면 해당 Zulip 채널을 구독하십시오.

주간 트리아지 회의(#t-compiler/meetings에서 진행되며, 여기를 참고하십시오) 중에 컴파일러 팀이 결정을 확정하고 해당하는 {beta,stable}-accepted 레이블을 적용합니다.

백포트를 승인해야 합니까?

다음은 컴파일러 백포트 리뷰어가 백포트 여부를 결정할 때 고려할 수 있는 사항이며, 전부를 망라한 목록은 아닙니다.

  • 상정된 변경 사항이 (예를 들어 구현상의 문제로) stable 또는 beta 릴리스 채널에 맞춰 제때 병합되지 않았습니다.
  • 백포트를 테스트할 시간이 충분합니까?
    • (beta 백포트 상정의 경우) 상정된 변경 사항이 다음 stable 컴파일러 릴리스에 너무 임박해서 적용됩니다. 이 시점에 백포트를 병합하면 테스트할 시간이 매우 제한적이거나 아예 없습니다.
    • stable 포인트 릴리스는 검증 기간 없이 모든 사용자에게 즉시 배포됩니다!
  • 상정된 컴파일러 변경 사항은 얼마나 복잡하거나 위험합니까? 백포트가 새 회귀를 일으킬 위험이 해결하려는 회귀나 이슈보다 더 심각할 가능성이 있습니까?
  • 수정하려는 회귀나 이슈는 얼마나 심각합니까?
    • 예를 들어 stable 회귀라고 해서 모두 같지는 않습니다. 어떤 회귀는 그다지 심각하지 않고, 어떤 회귀는 이미 여러 릴리스 전부터 stable 채널에 있었습니다.

기본적으로 stable 백포트가 승인되면 릴리스 팀이 새 포인트 릴리스를 출시합니다.

다만 컴파일러 팀은 stable 백포트를 승인하면서도, 이 상정이 그 자체만으로는 stable 포인트 릴리스를 낼 근거가 되지 않는다고 릴리스 팀에 추가로 알릴 수 있습니다. 이 경우 릴리스 팀은 승인된 다른 stable 백포트 후보들을 이 후보와 함께 검토하고 각각이 얼마나 심각한지 고려하여 stable 포인트 릴리스를 진행할지 최종 결정합니다.

승인된 백포트는 어떻게 처리됩니까?

릴리스 팀(T-release)이 현재 개발 주기가 끝날 때 백포트를 처리합니다(릴리스 백포트 참조). beta 백포트 상정이 너무 늦게 승인되면 릴리스 팀이 해당 변경 사항을 백포트하지 못할 수도 있습니다.

대부분의 경우 승인된 백포트는 기본 브랜치를 대상으로 합니다. 드물게는 beta 백포트가 beta 브랜치를 직접 대상으로 해야 할 수도 있습니다. 이 경우 병합하기 전에 Zulip #t-release 채널)에 새 스레드를 열어 릴리스 팀과 조율하십시오.

복잡한 백포트의 경우 릴리스 팀이 패치 작성자에게 도움을 요청할 수 있습니다.