8000 Update formatting and linting by Bouncner · Pull Request #2691 · hyrise/hyrise · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Update formatting and linting #2691

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 17 commits into
base: master
Choose a base branch
from
Open

Update formatting and linting #2691

wants to merge 17 commits into from

Conversation

Bouncner
Copy link
Collaborator
@Bouncner Bouncner commented Mar 19, 2025

Following the preparations for DYOD, this PR adapts the lint script to use clang-format checking.
To pass clang-format, this PR also includes running clang-format all. Apparently, we have not done that for a while. Most changes are simply a different styling that clang-format now applies.

@Bouncner Bouncner marked this pull request as draft March 27, 2025 08:06
@Bouncner Bouncner changed the title [WIP] Play around with formatting Update formatting and linting Mar 27, 2025
@Bouncner Bouncner added the FullCI Run all CI tests (slow, but required for merge) label Apr 1, 2025
@Bouncner Bouncner marked this pull request as ready for review April 1, 2025 19:46
@Bouncner Bouncner requested a review from tjeyy April 2, 2025 21:04
@tjeyy
Copy link
Member
tjeyy commented Apr 4, 2025

I get errors when the lint script calls clang-format :(
LLVM 20, running the format script doesn't make any changes.

➜  hyrise git:(martin/dotdotdotformat) ✗ ./scripts/lint.sh
src/lib/operators/table_scan/abstract_table_scan_impl.hpp:55:54: error: code should be clang-formatted [-Wclang-format-violations]
  static void __attribute__((hot, flatten, noinline))
                                                     ^
src/lib/operators/table_scan/abstract_table_scan_impl.hpp:56:24: error: code should be clang-formatted [-Wclang-format-violations]
  _scan_with_iterators(const BinaryFunctor func, LeftIterator left_it, const LeftIterator left_end,
                       ^
src/lib/operators/table_scan/abstract_table_scan_impl.hpp:56:100: error: code should be clang-formatted [-Wclang-format-violations]
  _scan_with_iterators(const BinaryFunctor func, LeftIterator left_it, const LeftIterator left_end,
                                                                                                   ^
src/lib/operators/table_scan/abstract_table_scan_impl.hpp:57:47: error: code should be clang-formatted [-Wclang-format-violations]
                       const ChunkID chunk_id, RowIDPosList& matches_out, [[maybe_unused]] RightIterator right_it) {
                                              ^
src/lib/operators/table_scan/column_vs_column_table_scan_impl.cpp:131:56: error: code should be clang-formatted [-Wclang-format-violations]
std::shared_ptr<RowIDPosList> __attribute__((noinline))
                                                       ^
src/lib/operators/table_scan/column_vs_column_table_scan_impl.cpp:132:63: error: code should be clang-formatted [-Wclang-format-violations]
ColumnVsColumnTableScanImpl::_typed_scan_chunk_with_iterables(ChunkID chunk_id, const LeftIterable& left_iterable,
                                                              ^
src/lib/operators/table_scan/column_vs_column_table_scan_impl.cpp:132:115: error: code should be clang-formatted [-Wclang-format-violations]
ColumnVsColumnTableScanImpl::_typed_scan_chunk_with_iterables(ChunkID chunk_id, const LeftIterable& left_iterable,
                                                                                                                  ^
src/lib/operators/table_scan/column_vs_column_table_scan_impl.cpp:147:56: error: code should be clang-formatted [-Wclang-format-violations]
std::shared_ptr<RowIDPosList> __attribute__((noinline))
                                                       ^
src/lib/operators/table_scan/column_vs_column_table_scan_impl.cpp:148:63: error: code should be clang-formatted [-Wclang-format-violations]
ColumnVsColumnTableScanImpl::_typed_scan_chunk_with_iterators(ChunkID chunk_id, LeftIterator& left_it,
                                                              ^
src/lib/operators/table_scan/column_vs_column_table_scan_impl.cpp:148:103: error: code should be clang-formatted [-Wclang-format-violations]
ColumnVsColumnTableScanImpl::_typed_scan_chunk_with_iterators(ChunkID chunk_id, LeftIterator& left_it,
                                                                                                      ^
src/lib/operators/table_scan/column_vs_column_table_scan_impl.cpp:149:117: error: code should be clang-formatted [-Wclang-format-violations]
                                                              const LeftIterator& left_end, RightIterator& right_it,
                                                                                                                    ^
src/lib/operators/join_nested_loop.cpp:32:31: error: code should be clang-formatted [-Wclang-format-violations]
void __attribute__((noinline))
                              ^
src/lib/operators/join_nested_loop.cpp:33:53: error: code should be clang-formatted [-Wclang-format-violations]
process_match(RowID left_row_id, RowID right_row_id, const JoinNestedLoop::JoinParams& params) {
                                                    ^
src/lib/operators/join_nested_loop.cpp:54:31: error: code should be clang-formatted [-Wclang-format-violations]
void __attribute__((noinline))
                              ^
src/lib/operators/join_nested_loop.cpp:55:73: error: code should be clang-formatted [-Wclang-format-violations]
join_two_typed_segments(const BinaryFunctor& func, LeftIterator left_it, LeftIterator left_end,
                                                                        ^
src/lib/operators/join_nested_loop.cpp:55:96: error: code should be clang-formatted [-Wclang-format-violations]
join_two_typed_segments(const BinaryFunctor& func, LeftIterator left_it, LeftIterator left_end,
                                                                                               ^
src/lib/operators/join_nested_loop.cpp:56:51: error: code should be clang-formatted [-Wclang-format-violations]
                        RightIterator right_begin, RightIterator right_end, const ChunkID chunk_id_left,
                                                  ^
src/lib/operators/join_nested_loop.cpp:56:105: error: code should be clang-formatted [-Wclang-format-violations]
                        RightIterator right_begin, RightIterator right_end, const ChunkID chunk_id_left,
                                                                                                        ^
src/lib/operators/join_nested_loop.cpp:57:54: error: code should be clang-formatted [-Wclang-format-violations]
                        const ChunkID chunk_id_right, const JoinNestedLoop::JoinParams& params) {
                                                     ^
src/lib/operators/aggregate_hash.cpp:1204:28: error: code should be clang-formatted [-Wclang-format-violations]
  split_results_chunk_wise(
                           ^
src/lib/operators/aggregate_hash.cpp:1205:50: error: code should be clang-formatted [-Wclang-format-violations]
      true, results, value_vectors, null_vectors, [&](auto begin, const auto end, const ChunkID chunk_id) {
                                                 ^
src/lib/operators/aggregate_hash.cpp:1205:108: error: code should be clang-formatted [-Wclang-format-violations]
      true, results, value_vectors, null_vectors, [&](auto begin, const auto end, const ChunkID chunk_id) {
                                                                                                           ^
src/lib/operators/aggregate_hash.cpp:1206:48: error: code should be clang-formatted [-Wclang-format-violations]
        auto& values = value_vectors[chunk_id];
                                               ^
src/lib/operators/aggregate_hash.cpp:1207:52: error: code should be clang-formatted [-Wclang-format-violations]
        auto& null_values = null_vectors[chunk_id];
                                                   ^
src/lib/operators/aggregate_hash.cpp:1209:40: error: code should be clang-formatted [-Wclang-format-violations]
        for (; begin != end; ++begin) {
                                       ^
src/lib/operators/aggregate_hash.cpp:1210:39: error: code should be clang-formatted [-Wclang-format-violations]
          const auto& result = *begin;
                                      ^
src/lib/operators/aggregate_hash.cpp:1212:119: error: code should be clang-formatted [-Wclang-format-violations]
          // NULL_ROW_ID (just a marker, not literally NULL) means that this result is either a gap (in the case of an
                                                                                                                      ^
src/lib/operators/aggregate_hash.cpp:1213:115: error: code should be clang-formatted [-Wclang-format-violations]
          // unused immediate key) or the result of overallocating the result vector. As such, it must be skipped.
                                                                                                                  ^
src/lib/operators/aggregate_hash.cpp:1214:41: error: code should be clang-formatted [-Wclang-format-violations]
          if (result.row_id.is_null()) {
                                        ^
src/lib/operators/aggregate_hash.cpp:1215:22: error: code should be clang-formatted [-Wclang-format-violations]
            continue;
                     ^
src/lib/operators/aggregate_hash.cpp:1216:12: error: code should be clang-formatted [-Wclang-format-violations]
          }
           ^
src/lib/operators/aggregate_hash.cpp:1218:44: error: code should be clang-formatted [-Wclang-format-violations]
          if (result.aggregate_count > 0) {
                                           ^
src/lib/operators/aggregate_hash.cpp:1219:53: error: code should be clang-formatted [-Wclang-format-violations]
            values.emplace_back(result.accumulator);
                                                    ^
src/lib/operators/aggregate_hash.cpp:1220:45: error: code should be clang-formatted [-Wclang-format-violations]
            null_values.emplace_back(false);
                                            ^
src/lib/operators/aggregate_hash.cpp:1221:19: error: code should be clang-formatted [-Wclang-format-violations]
          } else {
                  ^
src/lib/operators/aggregate_hash.cpp:1222:35: error: code should be clang-formatted [-Wclang-format-violations]
            values.emplace_back();
                                  ^
src/lib/operators/aggregate_hash.cpp:1223:44: error: code should be clang-formatted [-Wclang-format-violations]
            null_values.emplace_back(true);
                                           ^
src/lib/operators/aggregate_hash.cpp:1224:33: error: code should be clang-formatted [-Wclang-format-violations]
            null_written = true;
                                ^
src/lib/operators/aggregate_hash.cpp:1225:12: error: code should be clang-formatted [-Wclang-format-violations]
          }
           ^
src/lib/operators/aggregate_hash.cpp:1226:10: error: code should be clang-formatted [-Wclang-format-violations]
        }
         ^
src/lib/operators/aggregate_hash.cpp:1236:28: error: code should be clang-formatted [-Wclang-format-violations]
  split_results_chunk_wise(
                           ^
src/lib/operators/aggregate_hash.cpp:1237:51: error: code should be clang-formatted [-Wclang-format-violations]
      false, results, value_vectors, null_vectors, [&](auto begin, const auto end, const ChunkID chunk_id) {
                                                  ^
src/lib/operators/aggregate_hash.cpp:1237:109: error: code should be clang-formatted [-Wclang-format-violations]
      false, results, value_vectors, null_vectors, [&](auto begin, const auto end, const ChunkID chunk_id) {
                                                                                                            ^
src/lib/operators/aggregate_hash.cpp:1238:48: error: code should be clang-formatted [-Wclang-format-violations]
        auto& values = value_vectors[chunk_id];
                                               ^
src/lib/operators/aggregate_hash.cpp:1240:40: error: code should be clang-formatted [-Wclang-format-violations]
        for (; begin != end; ++begin) {
                                       ^
src/lib/operators/aggregate_hash.cpp:1241:39: error: code should be clang-formatted [-Wclang-format-violations]
          const auto& result = *begin;
                                      ^
src/lib/operators/aggregate_hash.cpp:1243:119: error: code should be clang-formatted [-Wclang-format-violations]
          // NULL_ROW_ID (just a marker, not literally NULL) means that this result is either a gap (in the case of an
                                                                                                                      ^
src/lib/operators/aggregate_hash.cpp:1244:115: error: code should be clang-formatted [-Wclang-format-violations]
          // unused immediate key) or the result of overallocating the result vector. As such, it must be skipped.
                                                                                                                  ^
src/lib/operators/aggregate_hash.cpp:1245:41: error: code should be clang-formatted [-Wclang-format-violations]
          if (result.row_id.is_null()) {
                                        ^
src/lib/operators/aggregate_hash.cpp:1246:22: error: code should be clang-formatted [-Wclang-format-violations]
            continue;
                     ^
src/lib/operators/aggregate_hash.cpp:1247:12: error: code should be clang-formatted [-Wclang-format-violations]
          }
           ^
src/lib/operators/aggregate_hash.cpp:1249:55: error: code should be clang-formatted [-Wclang-format-violations]
          values.emplace_back(result.aggregate_count);
                                                      ^
src/lib/operators/aggregate_hash.cpp:1250:10: error: code should be clang-formatted [-Wclang-format-violations]
        }
         ^
src/lib/operators/aggregate_hash.cpp:1260:28: error: code should be clang-formatted [-Wclang-format-violations]
  split_results_chunk_wise(
                           ^
src/lib/operators/aggregate_hash.cpp:1261:51: error: code should be clang-formatted [-Wclang-format-violations]
      false, results, value_vectors, null_vectors, [&](auto begin, const auto end, const ChunkID chunk_id) {
                                                  ^
src/lib/operators/aggregate_hash.cpp:1261:109: error: code should be clang-formatted [-Wclang-format-violations]
      false, results, value_vectors, null_vectors, [&](auto begin, const auto end, const ChunkID chunk_id) {
                                                                                                            ^
src/lib/operators/aggregate_hash.cpp:1262:48: error: code should be clang-formatted [-Wclang-format-violations]
        auto& values = value_vectors[chunk_id];
                                               ^
src/lib/operators/aggregate_hash.cpp:1264:40: error: code should be clang-formatted [-Wclang-format-violations]
        for (; begin != end; ++begin) {
                                       ^
src/lib/operators/aggregate_hash.cpp:1265:39: error: code should be clang-formatted [-Wclang-format-violations]
          const auto& result = *begin;
                                      ^
src/lib/operators/aggregate_hash.cpp:1267:119: error: code should be clang-formatted [-Wclang-format-violations]
          // NULL_ROW_ID (just a marker, not literally NULL) means that this result is either a gap (in the case of an
                                                                                                                      ^
src/lib/operators/aggregate_hash.cpp:1268:115: error: code should be clang-formatted [-Wclang-format-violations]
          // unused immediate key) or the result of overallocating the result vector. As such, it must be skipped.
                                                                                                                  ^
src/lib/operators/aggregate_hash.cpp:1269:41: error: code should be clang-formatted [-Wclang-format-violations]
          if (result.row_id.is_null()) {
                                        ^
src/lib/operators/aggregate_hash.cpp:1270:22: error: code should be clang-formatted [-Wclang-format-violations]
            continue;
                     ^
src/lib/operators/aggregate_hash.cpp:1271:12: error: code should be clang-formatted [-Wclang-format-violations]
          }
           ^
src/lib/operators/aggregate_hash.cpp:1273:58: error: code should be clang-formatted [-Wclang-format-violations]
          values.emplace_back(result.accumulator.size());
                                                         ^
src/lib/operators/aggregate_hash.cpp:1274:10: error: code should be clang-formatted [-Wclang-format-violations]
        }
         ^
src/lib/operators/aggregate_hash.cpp:1329:28: error: code should be clang-formatted [-Wclang-format-violations]
  split_results_chunk_wise(
                           ^
src/lib/operators/aggregate_hash.cpp:1330:50: error: code should be clang-formatted [-Wclang-format-violations]
      true, results, value_vectors, null_vectors, [&](auto begin, const auto end, const ChunkID chunk_id) {
                                                 ^
src/lib/operators/aggregate_hash.cpp:1330:108: error: code should be clang-formatted [-Wclang-format-violations]
      true, results, value_vectors, null_vectors, [&](auto begin, const auto end, const ChunkID chunk_id) {
                                                                                                           ^
src/lib/operators/aggregate_hash.cpp:1331:48: error: code should be clang-formatted [-Wclang-format-violations]
        auto& values = value_vectors[chunk_id];
                                               ^
src/lib/operators/aggregate_hash.cpp:1332:52: error: code should be clang-formatted [-Wclang-format-violations]
        auto& null_values = null_vectors[chunk_id];
                                                   ^
src/lib/operators/aggregate_hash.cpp:1334:40: error: code should be clang-formatted [-Wclang-format-violations]
        for (; begin != end; ++begin) {
                                       ^
src/lib/operators/aggregate_hash.cpp:1335:39: error: code should be clang-formatted [-Wclang-format-violations]
          const auto& result = *begin;
                                      ^
src/lib/operators/aggregate_hash.cpp:1337:119: error: code should be clang-formatted [-Wclang-format-violations]
          // NULL_ROW_ID (just a marker, not literally NULL) means that this result is either a gap (in the case of an
                                                                                                                      ^
src/lib/operators/aggregate_hash.cpp:1338:115: error: code should be clang-formatted [-Wclang-format-violations]
          // unused immediate key) or the result of overallocating the result vector. As such, it must be skipped.
                                                                                                                  ^
src/lib/operators/aggregate_hash.cpp:1339:41: error: code should be clang-formatted [-Wclang-format-violations]
          if (result.row_id.is_null()) {
                                        ^
src/lib/operators/aggregate_hash.cpp:1340:22: error: code should be clang-formatted [-Wclang-format-violations]
            continue;
                     ^
src/lib/operators/aggregate_hash.cpp:1341:12: error: code should be clang-formatted [-Wclang-format-violations]
          }
           ^
src/lib/operators/aggregate_hash.cpp:1343:44: error: code should be clang-formatted [-Wclang-format-violations]
          if (result.aggregate_count > 1) {
                                           ^
src/lib/operators/aggregate_hash.cpp:1344:56: error: code should be clang-formatted [-Wclang-format-violations]
            values.emplace_back(result.accumulator[3]);
                                                       ^
src/lib/operators/aggregate_hash.cpp:1345:45: error: code should be clang-formatted [-Wclang-format-violations]
            null_values.emplace_back(false);
                                            ^
src/lib/operators/aggregate_hash.cpp:1346:19: error: code should be clang-formatted [-Wclang-format-violations]
          } else {
                  ^
src/lib/operators/aggregate_hash.cpp:1347:79: error: code should be clang-formatted [-Wclang-format-violations]
            // STDDEV_SAMP is undefined for lists with less than two elements.
                                                                              ^
src/lib/operators/aggregate_hash.cpp:1348:35: error: code should be clang-formatted [-Wclang-format-violations]
            values.emplace_back();
                                  ^
src/lib/operators/aggregate_hash.cpp:1349:44: error: code should be clang-formatted [-Wclang-format-violations]
            null_values.emplace_back(true);
                                           ^
src/lib/operators/aggregate_hash.cpp:1350:33: error: code should be clang-formatted [-Wclang-format-violations]
            null_written = true;
                                ^
src/lib/operators/aggregate_hash.cpp:1351:12: error: code should be cl
8000
ang-formatted [-Wclang-format-violations]
          }
           ^
src/lib/operators/aggregate_hash.cpp:1352:10: error: code should be clang-formatted [-Wclang-format-violations]
        }
         ^
src/lib/operators/join_nested_loop.hpp:59:40: error: code should be clang-formatted [-Wclang-format-violations]
  static void __attribute__((noinline))
                                       ^
src/lib/operators/join_nested_loop.hpp:60:75: error: code should be clang-formatted [-Wclang-format-violations]
  _join_two_untyped_segments(const AbstractSegment& abstract_segment_left,
                                                                          ^
src/lib/operators/join_nested_loop.hpp:61:76: error: code should be clang-formatted [-Wclang-format-violations]
                             const AbstractSegment& abstract_segment_right, const ChunkID chunk_id_left,
                                                                           ^
src/lib/operators/join_nested_loop.hpp:61:105: error: code should be clang-formatted [-Wclang-format-violations]
                             const AbstractSegment& abstract_segment_right, const ChunkID chunk_id_left,
                                                                                                        ^
src/lib/utils/meta_tables/meta_system_utilization_table.cpp:165:28: error: code should be clang-formatted [-Wclang-format-violations]
  struct timespec time_spec {};
                           ^
src/lib/utils/meta_tables/meta_system_utilization_table.cpp:269:30: error: code should be clang-formatted [-Wclang-format-violations]
  struct task_basic_info info {};
                             ^
src/lib/utils/meta_tables/meta_system_information_table.cpp:89:29: error: code should be clang-formatted [-Wclang-format-violations]
  struct sysinfo memory_info {};  // NOLINT(misc-include-cleaner): sysinfo of sys/sysinfo.h is not recognized.
                            ^
src/lib/expression/evaluation/expression_functors.hpp:209:105: error: code should be clang-formatted [-Wclang-format-violations]
    static constexpr bool value = (std::is_same_v<pmr_string, ArgA> == std::is_same_v<pmr_string, ArgB>)&&(
                                                                                                        ^
src/lib/expression/evaluation/expression_functors.hpp:209:107: error: code should be clang-formatted [-Wclang-format-violations]
    static constexpr bool value = (std::is_same_v<pmr_string, ArgA> == std::is_same_v<pmr_string, ArgB>)&&(
                                                                                                          ^
src/lib/expression/evaluation/expression_functors.hpp:209:108: error: code should be clang-formatted [-Wclang-format-violations]
    static constexpr bool value = (std::is_same_v<pmr_string, ArgA> == std::is_same_v<pmr_string, ArgB>)&&(
                                                                                                           ^
src/benchmarklib/tpcc/procedures/tpcc_new_order.hpp:24:115: error: code should be clang-formatted [-Wclang-format-violations]
  int32_t ol_cnt;  // Number of items in the order  [5..15] - this is equal to _order_lines.size(), but we keep it

@Bouncner
Copy link
Collaborator Author
Bouncner commented Apr 4, 2025

I get errors when the lint script calls clang-format :( LLVM 20, running the format script doesn't make any changes.

➜  hyrise git:(martin/dotdotdotformat) ✗ ./scripts/lint.sh
src/lib/operators/table_scan/abstract_table_scan_impl.hpp:55:54: error: code should be clang-formatted [-Wclang-format-violations]
...
...
...
    static constexpr bool value = (std::is_same_v<pmr_string, ArgA> == std::is_same_v<pmr_string, ArgB>)&&(
                                                                                                           ^
src/benchmarklib/tpcc/procedures/tpcc_new_order.hpp:24:115: error: code should be clang-formatted [-Wclang-format-violations]
  int32_t ol_cnt;  // Number of items in the order  [5..15] - this is equal to _order_lines.size(), but we keep it

So scripts/lint.sh uses clang-format-20 and complains a lot, but scripts/format.sh also uses clang-format-20 and does not change anything?

@Bouncner
Copy link
Collaborator Author
Bouncner commented Apr 4, 2025

Can you please verify (just print it with --version somewhere in lint.sh and format.sh) that scripts fetch the same version?

Copy link
Member
@tjeyy tjeyy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some clarifying questions and a request.

@tjeyy
Copy link
Member
tjeyy commented Apr 4, 2025

So scripts/lint.sh uses clang-format-20 and complains a lot, but scripts/format.sh also uses clang-format-20 and does not change anything?

Yes.

Can you please verify (just print it with --version somewhere in lint.sh and format.sh) that scripts fetch the same version?

➜  hyrise git:(martin/dotdotdotformat) ✗ ./scripts/lint.sh
Homebrew clang-format version 20.1.1
➜  hyrise git:(martin/dotdotdotformat) ✗ ./scripts/format.sh
Homebrew clang-format version 20.1.1

@tjeyy
Copy link
Member
tjeyy commented Apr 4, 2025

Nevermind, running the format script with the all flag made several changes and the lint script is happy now.
Sorry!

Do you want me to push these changes?

@Bouncner
Copy link
Collaborator Author
Bouncner commented Apr 4, 2025

Nevermind, running the format script with the all flag made several changes and the lint script is happy now. Sorry!

Do you want me to push these changes?

No, please don't. Because most changes are simply from a style change after clang 18. Since we currently validate with clang 18, your changes would fail in the CI.

@Greenscreen23
Copy link
Contributor

Why does this PR not update the install_dependencies.sh and the jenkinsfile? I believe that the pipeline is still using clang-tidy 17.
This might not solve the issue, as clang-tidy 17 (with a compilation database from clang 17) produces errors on my machine on master, which the pipeline does not. I really don't understand this pipeline.

@Greenscreen23
Copy link
Contributor
Greenscreen23 commented Apr 18, 2025

I think I have discovered part of the problem. If you turn on clang-tidy in cmake, then only the cpp files are linted, but not the hpp files. I have opened #2697 , which contains instructions for clang-tidy to also lint included header files. In the pipeline you can see that the clang-tidy job produces a lot of errors in our header files. I am not sure if this is everything, but maybe it makes sense to include this in here? It would blow up the PR tho, so we can also do this in a separate PR. There is also some way to tell cmake/clang-tidy to autofix their issues. I can also take a look into that, but that seemed to have some other problems: https://discourse.cmake.org/t/whats-the-idiomatic-way-to-run-clang-tidy-on-header-files-with-cmake/9530

I am also not sure if this finds all the issues that are being highlighted by clangd in vscode, but it definitely finds quite a few of them (and some that are not even highlighted by clangd)

@Bouncner
Copy link
Collaborator Author

Why does this PR not update the install_dependencies.sh and the jenkinsfile? I believe that the pipeline is still using clang-tidy 17. This might not solve the issue, as clang-tidy 17 (with a compilation database from clang 17) produces errors on my machine on master, which the pipeline does not. I really don't understand this pipeline.

Not sure what you mean. This PR does not touch the CI pipeline. Moving to a more recent clang version is another branch (which is stale for a while unfortunately) and is not super simple as we need to address many things for clang tidy.

@Bouncner
Copy link
Collaborator Author

Why does this PR not update the install_dependencies.sh and the jenkinsfile? I believe that the pipeline is still using clang-tidy 17. This might not solve the issue, as clang-tidy 17 (with a compilation database from clang 17) produces errors on my machine on master, which the pipeline does not. I really don't understand this pipeline.

Not sure what you mean. This PR does not touch the CI pipeline. Moving to a more recent clang version is another branch (which is stale for a while unfortunately) and is not super simple as we need to address many things for clang tidy.

Saw that PR. Nice catch. Thanks!

@Greenscreen23
Copy link
Contributor

Why does this PR not update the install_dependencies.sh and the jenkinsfile? I believe that the pipeline is still using clang-tidy 17. This might not solve the issue, as clang-tidy 17 (with a compilation database from clang 17) produces errors on my machine on master, which the pipeline does not. I really don't understand this pipeline.

Not sure what you mean. This PR does not touch the CI pipeline. Moving to a more recent clang version is another branch (which is stale for a while unfortunately) and is not super simple as we need to address many things for clang tidy.

I believe you were talking about clang-20 here. Maybe this is because homebrew already uses clang-20 and our pipeline is still stuck at clang-17. Maybe it makes sense to upgrade the pipeline, so we don't run into any issues there?

@Bouncner
Copy link
Collaborator Author

Why does this PR not update the install_dependencies.sh and the jenkinsfile? I believe that the pipeline is still using clang-tidy 17. This might not solve the issue, as clang-tidy 17 (with a compilation database from clang 17) produces errors on my machine on master, which the pipeline does not. I really don't understand this pipeline.

Not sure what you mean. This PR does not touch the CI pipeline. Moving to a more recent clang version is another branch (which is stale for a while unfortunately) and is not super simple as we need to address many things for clang tidy.

I believe you were talking about clang-20 here. Maybe this is because homebrew already uses clang-20 and our pipeline is still stuck at clang-17. Maybe it makes sense to upgrade the pipeline, so we don't run into any issues there?

Updating is definitely a good idea. But I need to find the time for that. There is already a branch that has 80-90% of the fixes, but I will not find the time to finish this PR the next couple of weeks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FullCI Run all CI tests (slow, but required for merge)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0