[SERVER-82684] Split clang_tidy in multiple tasks Created: 01/Nov/23  Updated: 02/Feb/24

Status: Needs Scheduling
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Tommaso Tocci Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: FY25Q1
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Correctness
Participants:

 Description   

clang_tidy takes about 40 min to complete and is the slowest tasks among the ones required for the commit queue.

buildscripts/clang_tidy.py is used to run and parallelize clang_tidy execution.

We could partition the files in the repository in several disjunctive sets and execute oneĀ  clang_tidy.py for each set in parallel tasks.



 Comments   
Comment by Daniel Moody [ 05/Nov/23 ]

What if I just change a header?

Comment by Pierlauro Sciarelli [ 05/Nov/23 ]

What about checking only the changed files? https://clang.llvm.org/extra/doxygen/clang-tidy-diff_8py_source.html

Comment by Daniel Moody [ 01/Nov/23 ]

I had proposed this before (I could not find a ticket) my idea was to split the compile_commands.json into 4 equal parts, as that is the main input to our clang_tidy.py script. each task would be almost identical just supply the index for what part of the compile_commands should be split out and used for clang tidy.

Generated at Thu Feb 08 06:49:59 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.