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

rustc-dev-guide

rustc-dev-guide 팀은 컴파일러 팀의 하위 팀으로, rustc-dev-guide(rust-lang/rustc-dev-guide에 있음)의 유지 관리를 담당합니다.

팀의 책임

  • 가이드의 상태를 트리아지하여 오래되었거나 누락된 정보를 찾습니다
  • 가이드 페이지의 기타 편집 작업을 하거나 시간이 지나 깨진 링크를 수정합니다
  • 도메인별 전문 지식이 필요하지 않은 가이드의 간단한 PR을 리뷰합니다
  • 도메인별 문서 변경을 해당 도메인 전문가 리뷰어와 연결합니다
  • 메인 rust 저장소와 rustc-dev-guide 저장소 간의 서브트리 동기화를 수행합니다

팀 구성원 자격

  • 꾸준히 기여한 사람은 팀 리드의 초대를 받아 팀에 합류할 수 있습니다.

    이 요건은 이미 컴파일러 팀의 구성원인 사람에게는 적용되지 않는다는 점에 유의하십시오. 이들은 자신의 변경 사항을 직접 병합할 수 있으므로 암묵적으로 가이드의 내용을 소유하기 때문입니다. 이들에게 구성원 자격은 가이드에 특별한 애정을 더 쏟겠다는 의사를 나타내는 신호에 가깝습니다. 또한 컴파일러 팀 구성원에 나와 있듯이, 컴파일러 팀 구성원이라는 것은 이 요건을 이미 충족했음을 의미한다는 점에도 유의하십시오.

  • 6개월 동안 활동하지 않으면 구성원은 전임 구성원으로 전환됩니다

    • 전환하기 전에 먼저 이를 알리는 것이 예의입니다

팀 리더십

  • 리드는 새 구성원을 승인합니다
    • 어떤 구성원도 이의를 제기하지 않아야 합니다
  • 리드는 메인 rust 저장소에서 서브트리 동기화를 승인할 수 있습니다
  • 팀 리드는 정해진 절차 없이 초대를 통해 임명됩니다

리뷰 정책

개발 가이드는 컴파일러 자체에 비해 변경 사항이 병합되기 위한 기준이 훨씬 낮습니다. 문서가 없는 것보다는 불완전하거나 작성 중인(WIP) 문서라도 있는 것이 낫습니다. 장의 하위 부분에서 빠진 내용을 추적하는 이슈와 함께 TODO를 뼈대로 남겨 두면, 자칫 독자를 혼란스럽게 할 수 있는 문서의 알려진 공백을 표시하는 데 유용합니다.

문서화하는 영역에 자신이 있는 기여자는 리뷰 없이 자신의 문서를 직접 병합해도 됩니다. 이러한 이유로 개발 가이드는 각 PR에 리뷰어를 자동으로 배정하지 않으며, 대신 PR 작성자가 필요하다고 판단하면 직접 PR 리뷰어를 요청할 수 있습니다.

리뷰어는 r? rustc-dev-guide 또는 r? @username이 포함된 코멘트를 작성하여 배정할 수 있습니다.

자신의 rustc-dev-guide PR을 직접 병합해도 괜찮을지 판단하는 좋은 경험 법칙은, 컴파일러의 해당 영역을 건드리는 복잡한 PR을 승인하는 것이 편하게 느껴지는지를 따져 보는 것입니다. 컴파일러 리뷰 정책을 참고하십시오.

rustc-dev-guide 변경 사항을 기여할 곳

변경 사항이 rustc-dev-guide의 문서 내용만 다루고 rust-lang/rust 코드 변경을 수반하지 않는다면, 변경 사항과 PR을 rust-lang/rustc-dev-guide 저장소에 직접 제출하십시오.

이 규칙을 따르면 다음과 같은 이점이 있습니다.

  • rustc-dev-guide 저장소의 변경 사항은 게시된 rustc-dev-guide에 즉시 반영될 수 있습니다.
  • rustc-dev-guide 저장소의 변경 사항은 rust-lang/rust의 bors CI를 거치지 않아도 됩니다.
  • rust-lang/rust의 bors 큐 부담이 줄어듭니다.

서브트리 동기화

개발 가이드는 메인 rust-lang/rust 저장소의 josh 서브트리입니다. 이를 통해 컴파일러 기여자는 컴파일러 자체의 변경과 함께 개발 가이드의 문서를 더 쉽게 업데이트할 수 있습니다.

이 때문에 개발 가이드에 대한 모든 변경 사항을 개발 가이드 자체 저장소와 rust-lang/rust 저장소에서 유지 관리되는 사본 사이에서 수동으로 동기화하는 절차가 필요합니다.

  1. 마지막 서브트리 동기화 이후 최소 일주일을 기다리십시오.
  2. 자동으로 열린 rustc-pull PR이 있거나, 병합 충돌이 있는 경우에는 수동 rustc-pull이 필요합니다. 열려 있는 rustc-pull PR이 있으면 이를 병합하고1, 그렇지 않으면 수동 rustc-pull을 수행해야 합니다. rustc-pull의 예시는 rustc-dev-guide#2451을 참조하십시오.
  3. 동기화를 진행 중이라는 사실을 서브트리 동기화 조율용 Zulip 채널에 게시하십시오.
  4. 수동으로 rustc-push를 수행하고 PR을 여십시오. PR은 rustc-dev-guide 리드(현재 @BoxyUwU 또는 @jieyouxu)에게 배정해야 합니다. 저희는 다른 일부 팀처럼 직접 승인하는 대신 rustc-push PR을 다른 사람에게 배정하는 편입니다. 서브트리를 처음 설정할 때 몇 차례 사고가 있었기 때문에, 누군가 확인하지 않고 진행하는 것이 불안하게 느껴졌기 때문입니다.
  5. 서브트리 동기화가 수행되었음을 모두가 알 수 있도록 rustc-push PR을 서브트리 동기화 조율용 Zulip 채널에 게시하십시오. rustc-push의 예시는 rust-lang/rust#141962를 참조하십시오.

rustc-pull 또는 rustc-push를 수행하는 방법에 대한 문서는 개발 가이드의 README에서 찾을 수 있습니다.


  1. 자동으로 열린 rustc-pull에 개발 가이드에 대한 실제 변경 사항이 없다면, 동기화할 실제 변경 사항이 생길 때까지 서브트리 동기화를 미룰 수 있습니다. ↩