컴파일러 경고 추적 도구¶
컴파일러 경고 추적 도구는 개발자가 기여한 코드로 인해 새로 발생한 컴파일러 경고를 개발자에게 알리기 위한 것입니다. 이 도구는 다음 GitHub 워크플로에서 실행되는 Python 스크립트로 구성됩니다:
Ubuntu/빌드 및 테스트 (.github/workflows/reusable-ubuntu.yml)
macOS/빌드 및 테스트 (.github/workflows/reusable-macos.yml)
Tools/build/check_warnings.py 도구의 문서는 다음을 실행하여 확인할 수 있습니다:
python Tools/build/check_warnings.py --help
컴파일러 출력 파일(출력이 저장된 파일)과 컴파일러 출력 유형(gcc 또는 clang)을 지정하여 스크립트를 로컬에서 실행하면 고유한 경고 목록을 볼 수 있습니다:
python Tools/build/check_warnings.py --compiler-output-file-path=compiler_output.txt --compiler-output-type=gcc
경고 검사가 GitHub CI에서 실패할 때 해야 할 일¶
컴파일러가 특정 소스 파일에 대해 플랫폼별 경고 무시 파일에 정의된 예상 개수보다 많거나 적은 경고를 생성하면 Tools/build/check_warnings.py 도구가 실패합니다. 경고 무시 파일은 플랫폼에 따라 Tools/build/.warningignore_ubuntu 또는 Tools/build/.warningignore_macos입니다.
경고 검사가 다음 사유로 실패한 경우:
예상치 못한 경고
경고가 발생하지 않도록 코드를 리팩터링해 보십시오.
경고를 피할 수 없다면 해당 경고를 무시해도 되는 이유를 PR에 문서화하고, 그 경고를 플랫폼별 경고 무시 파일에 추가하십시오. 해당 파일이 경고 무시 파일에 이미 있다면 새로 발생한 경고 수만큼 개수를 늘리십시오.
예상치 못한 개선(경고 감소)
변경으로 컴파일러 경고 수가 줄었다는 사실을 PR에 문서화하십시오. 플랫폼별 경고 무시 파일에서 개수를 줄이거나, 개수가 0이 되었다면 해당 파일 항목을 제거하십시오.
경고 무시 파일 갱신하기¶
경고 무시 파일은 Tools/build/ 디렉터리에 있습니다. 무시 파일에는 파일과 디렉터리를 모두 추가할 수 있습니다. 파일에는 명시적인 경고 개수나 와일드카드 개수를 지정할 수 있습니다. 디렉터리 뒤에는 반드시 와일드카드 개수를 지정해야 합니다. 와일드카드는 0개 이상의 경고를 무시한다는 뜻입니다. 다음은 경고 무시 파일 형식의 예입니다:
Modules/_ctypes/_ctypes_test_generated.c.h *
Objects/longobject.c 46
Objects/methodobject.c 1
Objects/mimalloc/ *
와일드카드는 CPython이 유지 관리하지 않는 코드나 테스트용 코드에만 사용합니다. 경고 무시 파일의 줄은 사전순으로 정렬된 상태로 유지하십시오.