Ericsson / codechecker

CodeChecker is an analyzer tooling, defect database and viewer extension for the Clang Static Analyzer and Clang Tidy
https://codechecker.readthedocs.io
Apache License 2.0
2.23k stars 373 forks source link

[web] Server based analysis configuration #4272

Open vodorok opened 3 months ago

vodorok commented 3 months ago

Currently, CodeChecker only allows users to configure the analysis through the command line interface. A server-side stored configuration for CodeChecker would be beneficial for several use cases. Firstly, it would enable teams to share analysis configurations easily, ensuring consistency across different environments and team members. Secondly, it would allow for centralized management of checker lists, analysis configurations, and checker configurations, and required CodeChecker and analyzer versions.

The current method of configuring CodeChecker via the command line interface presents several challenges. It requires users to have access to the CI configuration, which is typically done by separate teams. The user also needs to understand the specific parameters needed for configuring the tool. This can lead to inconsistencies in how different team members configure their analyses. Furthermore, the lack of a centralized configuration means that each user has to set up their environment individually, which is time-consuming and error-prone. Additionally, without a visual interface, it can be difficult to manage and review the configurations, making it hard to ensure that all necessary checks are in place and that the analysis is performed consistently across several CodeChecker analysis runs.

To address these issues, implementing a server-side stored configuration for CodeChecker would be a significant improvement. This configuration should be shareable, allowing team members to access and apply the same settings easily. Public configurations would allow it to be used as a template by teams. The benefit of this would be that one could ensure that the proper checks are used across all of its teams. Storing checker lists, analysis configurations, checker configurations, and analyzer version specifications on the server, would ensure consistency and reduce the likelihood of errors.

An intuitive GUI on the Web client would enhance the user experience by providing a visual way to manage these settings. GUI could offer public preset configurations, defined by the CodeChecker teams based on best practices making it easier for users to get started quickly. There should be indicators present that would sign if a certain (important) checker was turned off.