blob: 04dca4a34066ca990b11e0cd8fc4777bf3911795 [file]
merge_base_with = "origin/main"
[[linter]]
code = 'FLAKE8'
include_patterns = ['**/*.py']
exclude_patterns = [
'third-party/**',
'**/third-party/**',
'.github/scripts/**',
'exir/serde/**',
]
command = [
'python',
'-m',
'lintrunner_adapters',
'run',
'flake8_linter',
'--',
'@{{PATHSFILE}}'
]
init_command = [
'python',
'-m',
'lintrunner_adapters',
'run',
'pip_init',
'--dry-run={{DRYRUN}}',
'--requirement=requirements-lintrunner.txt',
]
# Black + usort
[[linter]]
code = 'UFMT'
include_patterns = [
'**/*.py',
'**/*.pyi',
]
exclude_patterns = [
'third-party/**',
'**/third-party/**',
'exir/serde/**',
]
command = [
'python',
'-m',
'lintrunner_adapters',
'run',
'ufmt_linter',
'--',
'@{{PATHSFILE}}'
]
init_command = [
'python',
'-m',
'lintrunner_adapters',
'run',
'pip_init',
'--dry-run={{DRYRUN}}',
'--no-black-binary',
'--requirement=requirements-lintrunner.txt',
]
is_formatter = true
#CLANGFORMAT
[[linter]]
code = 'CLANGFORMAT'
include_patterns = [
'**/*.h',
'**/*.cpp',
]
exclude_patterns = [
'third-party/**',
'**/third-party/**',
# NB: Objective-C is not supported
'examples/apple/**',
'examples/demo-apps/apple_ios/**',
# File contains @generated
'extension/llm/custom_ops/spinquant/fast_hadamard_transform_special.h',
'extension/llm/custom_ops/spinquant/test/fast_hadamard_transform_special_unstrided_cpu.h',
]
command = [
'python',
'-m',
'lintrunner_adapters',
'run',
'clangformat_linter',
'--binary=clang-format',
'--fallback',
'--',
'@{{PATHSFILE}}'
]
init_command = [
'python',
'-m',
'lintrunner_adapters',
'run',
'pip_init',
'--dry-run={{DRYRUN}}',
'--requirement=requirements-lintrunner.txt',
]
is_formatter = true
[[linter]]
code = 'CMAKE'
include_patterns = [
"**/*.cmake",
"**/*.cmake.in",
"**/CMakeLists.txt",
]
exclude_patterns = [
'third-party/**',
'**/third-party/**',
]
command = [
'python',
'-m',
'lintrunner_adapters',
'run',
'cmake_linter',
'--config=.cmakelintrc',
'--',
'@{{PATHSFILE}}',
]
init_command = [
'python',
'-m',
'lintrunner_adapters',
'run',
'pip_init',
'--dry-run={{DRYRUN}}',
'--requirement=requirements-lintrunner.txt',
]
[[linter]]
code = 'ETCAPITAL'
include_patterns = [
'**/*.py',
'**/*.pyi',
'**/*.h',
'**/*.cpp',
'**/*.md',
'**/*.rst',
]
exclude_patterns = [
'third-party/**',
'**/third-party/**',
]
command = [
'python',
'-m',
'lintrunner_adapters',
'run',
'grep_linter',
# Exclude "ExecuTorch" pattern within URLs
'--pattern= Executorch(?!\\W*(://|\\.[a-z]{2,}))\\W+',
'--linter-name=ExecuTorchCapitalization',
'--error-name=Incorrect capitalization for ExecuTorch',
"""--error-description=
Please use ExecuTorch with capital T for consistency.
https://fburl.com/workplace/nsx6hib2
""",
'--',
'@{{PATHSFILE}}',
]
[[linter]]
code = 'NEWLINE'
include_patterns = ['**']
exclude_patterns = [
'third-party/**',
'**/third-party/**',
'**/*.png',
'**/*.webp',
'**/*.jpeg',
'**/*.mp4',
'**/*.pte',
'**/*.pth',
'**/*.bin',
'**/*.patch',
'**/*.svg',
'**/*.bat',
'**/*.jpg',
'**/*.jar',
'**/*.gif',
# File contains @generated
'extension/llm/custom_ops/spinquant/fast_hadamard_transform_special.h',
'extension/llm/custom_ops/spinquant/test/fast_hadamard_transform_special_unstrided_cpu.h',
]
command = [
'python',
'-m',
'lintrunner_adapters',
'run',
'newlines_linter',
'--',
'@{{PATHSFILE}}',
]
is_formatter = true
[[linter]]
code = 'NOSTDINC'
include_patterns = [
"**/*.c",
"**/*.cpp",
"**/*.h",
"**/*.hpp",
]
exclude_patterns = [
'**/devtools/**',
'**/test/**',
'**/testing_util/**',
'**/third-party/**',
'backends/**',
'devtools/**',
'examples/**',
'extension/**',
'kernels/optimized/**',
'scripts/**',
'third-party/**',
'util/**',
]
command = [
'python',
'-m',
'lintrunner_adapters',
'run',
'grep_linter',
'--pattern=([^\\S\r\n]*#include\s*<(deque|exception|forward_list|functional|list|map|multimap|multiset|priority_queue|queue|set|stack|string|unordered_map|unordered_multimap|unordered_multiset|unordered_set|vector)>)',
'--linter-name=NOSTDINC',
'--error-name=Standard C++ container include in core',
"""--error-description=\
Standard library containers should not be included in ExecuTorch core \
because they may call malloc, which is not allowed in core. \
""",
'--',
'@{{PATHSFILE}}',
]
[[linter]]
code = 'NOTORCHINC'
include_patterns = [
"**/*.c",
"**/*.cpp",
"**/*.h",
"**/*.hpp",
]
exclude_patterns = [
'**/devtools/**',
'**/fb/**',
'**/test/**',
'**/tests/**',
'**/testing_util/**',
'**/third-party/**',
'backends/**',
'codegen/templates/RegisterDispatchKeyCustomOps.cpp',
'codegen/templates/RegisterSchema.cpp',
'devtools/**',
'examples/**',
'exir/verification/bindings.cpp',
'extension/**',
'kernels/optimized/**',
'runtime/core/exec_aten/**',
'runtime/executor/tensor_parser_aten.cpp',
'scripts/**',
'test/**',
'third-party/**',
'util/**',
]
command = [
'python',
'-m',
'lintrunner_adapters',
'run',
'grep_linter',
'--pattern=#include\s+[<"](aten/|ATen/|torch/)',
'--linter-name=NOTORCHINC',
'--error-name=ATen or torch include',
"""--error-description=\
PyTorch includes in ExecuTorch core are prohibited to prevent \
accidentally breaking core's requirements; please make sure this \
header complies (e.g., no streams/malloc/syscalls) and then include \
a patch to update this linter.\
""",
'--',
'@{{PATHSFILE}}',
]