컴파일러 경고 추적 도구¶
컴파일러 경고 추적 도구는 개발자의 기여로 새롭게 발생한 컴파일러 경고를 개발자에게 알리기 위한 것입니다. 이 도구는 다음 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에서 유지 관리하지 않는 코드 또는 테스트용 코드에만 사용할 수 있습니다. 경고 무시 파일의 줄을 사전식 순서로 정렬하여 유지하십시오.