Crater
Crater는 crates.io에 있는 모든 크레이트(와 GitHub에 있는 일부 크레이트)를 컴파일하고 테스트를 실행하는 도구입니다. 주로 호환성을 깨는 변경이 될 수 있는 사항을 구현할 때 문제가 생기는 범위를 확인하고, 베타와 안정 컴파일러 버전을 비교 실행하여 문제가 없음을 보장하는 데 사용됩니다.
Crater를 실행해야 하는 경우
PR이 컴파일러를 크게 변경하거나 호환성을 깨뜨릴 수 있다면 Crater 실행을 요청해야 합니다. 확실하지 않다면 PR 리뷰어에게 편하게 문의하십시오.
Crater 실행 요청하기
Rust 팀은 PR이 도입한 변경 사항에 대해 crater 실행에 사용할 수 있는 몇 대의 머신을 유지 관리합니다. PR에 Crater 실행이 필요하다면 PR 스레드에 트리아지 팀 앞으로 댓글을 남기십시오. 필요한 Crater 실행이 “확인 전용(check-only)” 실행인지, “빌드 전용(build only)” 실행인지, “빌드 및 테스트(build-and-test)” 실행인지 팀에 알려 주십시오. 주된 차이는 소요 시간입니다. 확실하지 않다면 빌드 및 테스트 실행을 선택하십시오. 컴파일 시점에만 영향을 주는 변경(예: 새 트레이트 구현)이라면 확인 실행만으로 충분합니다.
트리아지 팀이 PR을 대기열에 넣으며, 결과가 준비되면 게시됩니다. 확인 실행은 약 3일에서 4일이 걸리며, 나머지 두 가지는 평균 5일에서 6일이 걸립니다.
Crater는 매우 유용하지만, 몇 가지 주의 사항도 알아 두는 것이 중요합니다.
-
모든 코드가 crates.io에 있는 것은 아닙니다! GitHub을 비롯한 여러 곳의 저장소에도 많은 코드가 있습니다. 또한 기업은 자사 코드를 공개하고 싶어 하지 않을 수 있습니다. 따라서 Crater 실행이 성공했다고 해서 호환성이 깨지지 않는다는 뜻은 아니므로, 여전히 주의해야 합니다.
-
Crater는 x86_64에서 Linux 빌드만 실행합니다. 따라서 다른 아키텍처와 플랫폼은 테스트되지 않습니다. 특히 중요한 점은 여기에 Windows도 포함된다는 것입니다.
-
많은 크레이트가 테스트되지 않습니다. 이유는 여러 가지일 수 있습니다. 크레이트가 더 이상 컴파일되지 않거나(예: 오래된 nightly 기능 사용), 테스트가 깨졌거나 불안정하거나, 네트워크 접근이 필요하거나, 그 밖의 이유가 있을 수 있습니다.
-
Crater를 실행하려면 먼저
@bors try가 산출물 빌드에 성공해야 합니다. 즉, 코드가 컴파일되지 않으면 Crater를 실행할 수 없습니다.