<div dir="ltr"><p style="margin:0px 0px 1em;color:rgb(36,36,36);font-size:14px"><strong>All,</strong></p><p style="margin:0px 0px 1em;color:rgb(36,36,36);font-size:14px">Some OpenBMC repositories are already using clang-tidy to ensure code quality and adherence to coding standards. To further standardize this practice, the OpenBMC CI infrastructure will now automatically verify code quality during check-in if a <code style="overflow-wrap: break-word;">.clang-tidy</code> file is present in the repository's root directory, enabling automatic validation.</p><p style="margin:0px 0px 1em;color:rgb(36,36,36);font-size:14px">As part of extending clang-tidy coverage and streamlining its enablement, proposing the use of a common base configuration in all repositories. Repository owners can then disable checks that are not required based on their project needs</p><p style="margin:0px 0px 1em;color:rgb(36,36,36);font-size:14px"><strong>Key Points:</strong></p><ul style="margin-left:0px;padding-left:0px;margin-top:10px;margin-bottom:10px;color:rgb(36,36,36);font-size:14px"><li style="list-style-type:disc;margin-left:20px"><strong>Standard Configuration:</strong> A reference <code style="overflow-wrap: break-word;">.clang-tidy.[type]</code> file is provided as a base template for all repositories. This template adheres to OpenBMC's standards and includes checks recommended by the clang-tidy documentation.</li><li style="list-style-type:disc;margin-left:20px"><strong>Standardization:</strong> All repositories start with the same base configuration, ensuring consistent coding standards and checks.</li><li style="list-style-type:disc;margin-left:20px"><strong>Customization:</strong> Maintainers can adjust the configuration to fit specific repository needs. Checks can be disabled by prefixing them with a '-'.</li><li style="list-style-type:disc;margin-left:20px"><strong>C and C++ Checks:</strong> The configuration includes checks for both C and C++ code, promoting best practices.</li><li style="list-style-type:disc;margin-left:20px"><strong>Activation:</strong> To activate clang-tidy, copy the base version file from <code style="overflow-wrap: break-word;"><link></code>, rename it to <code style="overflow-wrap: break-word;">.clang-tidy</code>, and place it in the respective repository.</li></ul><p style="margin:0px 0px 1em;color:rgb(36,36,36);font-size:14px"><strong>Testing the Configuration:</strong></p><p style="margin:0px 0px 1em;color:rgb(36,36,36);font-size:14px">Utilizing the existing <code style="overflow-wrap: break-word;">format-code.sh</code> tool, the common configuration will be applied and executed as part of CI if found in the root directory, ensuring no files are modified after running it.</p><p style="margin:0px 0px 1em;color:rgb(36,36,36);font-size:14px"><strong>In Progress:</strong></p><ul style="margin-left:0px;padding-left:0px;margin-top:10px;margin-bottom:10px;color:rgb(36,36,36);font-size:14px"><li style="list-style-type:disc;margin-left:20px">Updated clang-tidy Documentation:  <a href="https://gerrit.openbmc.org/c/openbmc/docs/+/76369/">https://gerrit.openbmc.org/c/openbmc/docs/+/76369/</a></li><li style="list-style-type:disc;margin-left:20px">Published Initial Version of C++ Reference Configuration: <a href="https://gerrit.openbmc.org/c/openbmc/docs/+/76345/">https://gerrit.openbmc.org/c/openbmc/docs/+/76345/</a></li><li style="list-style-type:disc;margin-left:20px">Started Updating and Enabling Repositories with New Clang-Tidy Config File: See patch series : <a href="https://gerrit.openbmc.org/q/topic:%22clang-tidy-base%22">https://gerrit.openbmc.org/q/topic:%22clang-tidy-base%22</a></li><li style="list-style-type:disc;margin-left:20px">Added Commit to Fix Clang-Tidy Build Failures: Provided trivial fixes or disabled errors using clang pragmas. Also disabled all failing checks.</li></ul><p style="margin:0px 0px 1em;color:rgb(36,36,36);font-size:14px"><strong>Scope of Activity:</strong></p><p style="margin:0px 0px 1em;color:rgb(36,36,36);font-size:14px">The current activity focuses on enabling clang-tidy for all active repositories and adding trivial fixes if required to establish the clang-tidy base infrastructure. Once this update is completed, repository owners can start enabling the disabled checks based on their project needs.</p><p style="margin:0px 0px 1em;color:rgb(36,36,36);font-size:14px"><strong>Input Required:</strong></p><p style="margin:0px 0px 1em;color:rgb(36,36,36);font-size:14px">Looking for timely reviews and early feedback to finalize the process.</p></div>