[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. |