diff --git a/.clang-tidy b/.clang-tidy index ddee835c15..d945a4a27d 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,66 +1,66 @@ FormatStyle: file -Checks: ' -*bugprone*, -clang-analyzer-optin.performance.Padding, -clang-analyzer-optin.cplusplus.VirtualCall, -cppcoreguidelines-init-variables, -cppcoreguidelines-prefer-member-initializer, -cppcoreguidelines-pro-type-static-cast-downcast, -cppcoreguidelines-slicing, -google-explicit-constructor, -llvm-namespace-comment, -misc-definitions-in-headers, -misc-misplaced-const, -misc-non-copyable-objects, -misc-static-assert, -misc-throw-by-value-catch-by-reference, -misc-uniqueptr-reset-release, -misc-unused-parameters, -modernize-avoid-bind, -modernize-loop-convert, -modernize-make-shared, -modernize-redundant-void-arg, -modernize-replace-auto-ptr, -modernize-replace-disallow-copy-and-assign-macro, -modernize-replace-random-shuffle, -modernize-shrink-to-fit, -modernize-use-auto, -modernize-use-bool-literals, -modernize-use-default-member-init, -modernize-use-equals-default, -modernize-use-equals-delete, -modernize-use-emplace, -modernize-use-noexcept, -modernize-use-nullptr, -modernize-use-override, -modernize-use-using, -*performance*, -readability-avoid-const-params-in-decls, -readability-braces-around-statements, -readability-const-return-type, -readability-container-size-empty, -readability-delete-null-pointer, -readability-else-after-return, -readability-implicit-bool-conversion, -readability-inconsistent-declaration-parameter-name, -readability-make-member-function-const, -readability-misplaced-array-index, -readability-non-const-parameter, -readability-qualified-auto, -readability-redundant-function-ptr-dereference, -readability-redundant-smartptr-get, -readability-redundant-string-cstr, -readability-simplify-subscript-expr, -readability-static-accessed-through-instance, -readability-static-definition-in-anonymous-namespace, -readability-string-compare, -readability-suspicious-call-argument, -readability-uniqueptr-delete-release, --bugprone-exception-escape, --bugprone-reserved-identifier, --bugprone-unused-raii, -' +Checks: | + *bugprone*, + *performance*, + clang-analyzer-optin.cplusplus.VirtualCall, + clang-analyzer-optin.performance.Padding, + cppcoreguidelines-init-variables, + cppcoreguidelines-prefer-member-initializer, + cppcoreguidelines-pro-type-static-cast-downcast, + cppcoreguidelines-slicing, + google-explicit-constructor, + llvm-namespace-comment, + misc-definitions-in-headers, + misc-misplaced-const, + misc-non-copyable-objects, + misc-static-assert, + misc-throw-by-value-catch-by-reference, + misc-uniqueptr-reset-release, + misc-unused-parameters, + modernize-avoid-bind, + modernize-loop-convert, + modernize-make-shared, + modernize-redundant-void-arg, + modernize-replace-auto-ptr, + modernize-replace-disallow-copy-and-assign-macro, + modernize-replace-random-shuffle, + modernize-shrink-to-fit, + modernize-use-auto, + modernize-use-bool-literals, + modernize-use-default-member-init, + modernize-use-emplace, + modernize-use-equals-default, + modernize-use-equals-delete, + modernize-use-noexcept, + modernize-use-nullptr, + modernize-use-override, + modernize-use-using, + readability-avoid-const-params-in-decls, + readability-braces-around-statements, + readability-const-return-type, + readability-container-size-empty, + readability-delete-null-pointer, + readability-else-after-return, + readability-implicit-bool-conversion, + readability-inconsistent-declaration-parameter-name, + readability-make-member-function-const, + readability-misplaced-array-index, + readability-non-const-parameter, + readability-qualified-auto, + readability-redundant-function-ptr-dereference, + readability-redundant-smartptr-get, + readability-redundant-string-cstr, + readability-simplify-subscript-expr, + readability-static-accessed-through-instance, + readability-static-definition-in-anonymous-namespace, + readability-string-compare, + readability-suspicious-call-argument, + readability-uniqueptr-delete-release, + -bugprone-easily-swappable-parameters, + -bugprone-exception-escape, + -bugprone-reserved-identifier, + -bugprone-unused-raii, CheckOptions: - key: performance-for-range-copy.WarnOnAllAutoCopies @@ -73,5 +73,3 @@ CheckOptions: value: true HeaderFilterRegex: 'pybind11/.*h' - -WarningsAsErrors: '*' diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index c8ec91ff7a..00b1fea4cf 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -235,12 +235,14 @@ directory inside your pybind11 git clone. Files will be modified in place, so you can use git to monitor the changes. ```bash -docker run --rm -v $PWD:/mounted_pybind11 -it silkeh/clang:12 +docker run --rm -v $PWD:/mounted_pybind11 -it silkeh/clang:13 apt-get update && apt-get install -y python3-dev python3-pytest -cmake -S /mounted_pybind11/ -B build -DCMAKE_CXX_CLANG_TIDY="$(which clang-tidy);-fix" -DDOWNLOAD_EIGEN=ON -DDOWNLOAD_CATCH=ON -DCMAKE_CXX_STANDARD=17 -cmake --build build -j 2 -- --keep-going +cmake -S /mounted_pybind11/ -B build -DCMAKE_CXX_CLANG_TIDY="$(which clang-tidy);--use-color" -DDOWNLOAD_EIGEN=ON -DDOWNLOAD_CATCH=ON -DCMAKE_CXX_STANDARD=17 +cmake --build build -j 2 ``` +You can add `--fix` to the options list if you want. + ### Include what you use To run include what you use, install (`brew install include-what-you-use` on diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8b537e6e1e..2efdc64015 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -280,6 +280,8 @@ jobs: std: 20 - clang: 10 std: 17 + - clang: 14 + std: 20 name: "🐍 3 • Clang ${{ matrix.clang }} • C++${{ matrix.std }} • x64" container: "silkeh/clang:${{ matrix.clang }}" diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 5eb228a707..e6ed011d37 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -34,7 +34,7 @@ jobs: # in .github/CONTRIBUTING.md and update as needed. name: Clang-Tidy runs-on: ubuntu-latest - container: silkeh/clang:12 + container: silkeh/clang:13 steps: - uses: actions/checkout@v3 @@ -44,7 +44,7 @@ jobs: - name: Configure run: > cmake -S . -B build - -DCMAKE_CXX_CLANG_TIDY="$(which clang-tidy)" + -DCMAKE_CXX_CLANG_TIDY="$(which clang-tidy);--use-color;--warnings-as-errors=*" -DDOWNLOAD_EIGEN=ON -DDOWNLOAD_CATCH=ON -DCMAKE_CXX_STANDARD=17 diff --git a/tests/test_embed/CMakeLists.txt b/tests/test_embed/CMakeLists.txt index 69c33bbd54..09a3693999 100644 --- a/tests/test_embed/CMakeLists.txt +++ b/tests/test_embed/CMakeLists.txt @@ -7,7 +7,7 @@ if("${PYTHON_MODULE_EXTENSION}" MATCHES "pypy" OR "${Python_INTERPRETER_ID}" STR return() endif() -find_package(Catch 2.13.5) +find_package(Catch 2.13.9) if(CATCH_FOUND) message(STATUS "Building interpreter tests using Catch v${CATCH_VERSION}") diff --git a/tests/test_virtual_functions.cpp b/tests/test_virtual_functions.cpp index f6d8c5e3c3..323aa0d22d 100644 --- a/tests/test_virtual_functions.cpp +++ b/tests/test_virtual_functions.cpp @@ -342,9 +342,8 @@ TEST_SUBMODULE(virtual_functions, m) { const AdderBase &adder, const AdderBase::DataVisitor &visitor) { adder(first, second, [&](const AdderBase::Data &first_plus_second) { - adder(first_plus_second, - third, - visitor); // NOLINT(readability-suspicious-call-argument) + // NOLINTNEXTLINE(readability-suspicious-call-argument) + adder(first_plus_second, third, visitor); }); });