Skip to content

[FEATURE] Code quality checks #898

@kvedala

Description

@kvedala

Detailed Description

The repo code quality has been quite poor until the introduction of cpplint static code analysis checks.
Even then, there are many instances where the checks have not been enough:

  1. code formatting is not checked by cpplint - introduced clang-format in GitHub actions to atuofix formatting per Google C++ standards Major rework to improve code quality and add automation checks #805
  2. cpplint checks are quite limited and hence a suggestion to use clang-tidy was proposed Should this repo lint C++ code with clang-tidy or cpplint? #808
  3. clang-tidy would be ideal with following important points to note
    • there is no GUI to view the results
    • extensive checks and the repo is not unto the standards and would require more effort to fixing it
    • easy to implement the checks only on modified files to mitigate the above problem
    • the above bandaid fix would again cause the repo to be inconsistently formatted code
  4. LGTM addresses the two as a mid-way solution
    • it performs more stringent checks than cpplint but is more permissive than clang-tidy.
    • The output is presented as a convenient GUI for easy views
    • Ability to post a comment on pull-requests after successful checks
    • List of checks
    • The parent company of LGTM is to become an integral part of GitHub and hence, I believe a proven and credible platform.
  5. There are other tools as discussed in the comments below.

Let us discuss the benefits and drawbacks of such an implementation.

I did create a temporary pull-request for review and discussion #897 (This now seems redundant)

Please review thoroughly and cast your vote on the tool you'd prefer by clicking on that tool below. If selected other, please add a comment mentioning which toll and why.




Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions