v6.14.0
New features
New statistics page in the Web UI
The statistics page got a new design with a lot of new features:
- statistics shown in separate tabs instead of one page for better visibility
- new, component statistics page, where reports are distributed per statistics, components can represent a part of a repository (directory, files)
- statistics comparison mode: you will be able compare the report statistics of two different analysis runs or time snapshot
- diff and review status filters are available on the statistics page
#2897
Redesigned date selectors for the web UI filter and CLI
You will be able to list the open reports of your project for any date.
Open reports at a date are which were detected BEFORE the given date and NOT FIXED BEFORE the given date.
From the CLI the open reports can be queried like this:
CodeChecker cmd results --open-reports-date 2020:09:11:12:20 --url ...
Remember filters when navigate between pages
Filters are remembered during navigating between the pages. The report list and statistics related filters are saved separately.
#2913
Show analyzer name alongside the reports
Analysis results from multiple static analyzers can be stored to the database, with this change for each report the analyzer
name can be viewed which produced the result.
#2717
Always show similar reports
Reports with the same hash can be seen in a drop down list for each report without uniqueing #2896
Enable and disable checker profiles and guidelines (like sei-cert) in the analyzer CLI.
There is a new syntax extended with guideline support which can be used to enable checker sets.
With the new syntax the checkers, profiles and guideline can be enabled or disabled even if there is a conflict in their name.
The arguments may start with profile:
of guideline:
prefix which makes the choice explicit.
Without prefix it means a profile name, a guideline name or a checker group/name in this priority order.
CodeChecker analyze -o reports -e profile:sensitive -e guideline:sei-cert compile_command.json
Use these commands to list the available profiles
CodeChecker checkers --profile list
or guidelines:
CodeChecker checkers --guideline
New report converter for Markdownlint results
The reports from Markdownlint can be converted and stored
to the report serve like this:
# Run Markdownlint.
mdl /path/to/your/project > ./mdl_reports.out
# Use 'report-converter' to create a CodeChecker report directory from the
# analyzer result of Markdownlint.
report-converter -t mdl -o ./codechecker_mdl_reports ./mdl_reports.out
# Store Markdownlint reports with CodeChecker.
CodeChecker store ./codechecker_mdl_reports -n mdl
The codechecker config file was extended with a parse section which can be used by the parse subcommand.
It can be used to set the path prefixes in the CodeChecker config file which should be trimmed by the parse subcommand when the reports are printed:
{
"parse": [
"--trim-path-prefix",
"/$HOME/workspace"
]
}
The config file for the parse command can be set like this:
CodeChecker parse report --config codechecker_cfg.json
#2885
Environment variables can be used in the CodeChecker config file, they will be expanded automatically
{
"analyzer": [
"--skip=$HOME/project/skip.txt"
]
}
Changes
On-demand Cross Translation Unit Analysis will be the default CTU analysis mode
The On-demand CTU analysis support introduced in the previous release is enabled by default now if the used
clang static analyzer supports it. CTU analysis will be performed without the huge temporary disc space allocation.
With the --ctu-ast-mode
the analysis mode can be switched back to the old behavior if the new consumes too much memory:
CodeChecker analyze --ctu-ast-mode lod-from-pch ....
Further improvements worth mentioning
- Collect compiler information in case of clang mismatch #2872
- Log enabled checkers at the beginning of analysis #2858
- Add severity to statistics html page #2899
- Improve source component filter performance #2857
- Options specified on the command line after the --config option will override options specified in the config file #2883
- Compile command logging for
make
versions newer than 4.3 is fixed #2689
Full list of changes
View the milestone for the complete list of changes in this release.
Contributors
Big thanks to everyone who helped us creating this release: @sylvestre @gocarlos