v6.24.0
🌟 Highlights
Listing of Enabled/Disabled Checkers in the WEB UI per run
CodeChecker provides a new view in the "Analysis information tab" which lists all checkers that were enabled during analysis.
- feat(server): Store information about available checkers to the database by @whisperity in #4089
New Checker Coverage Statistics view with coding guideline references
CodeChecker provides a new view to display all enabled checkers for a set of selected runs. Additionally, it also lists all guideline rules related to the given checker. For example, you can verify whether your code has any SEI Cert coding guideline violation.
The new table lists all checkers that were enabled in a set of selected analysis runs, shows the number of outstanding reports and the number of closed reports per enabled checker and the related coding guideline rules.
How is this new view different compared to the existing "Checker Statistics View"?
The Checker Statistics View only displays checkers that produced reports for the selected runs.
This new view additionally lists all checkers that were enabled in the last analysis for the selected runs.
- [GUI] New "Checker Coverage" statistics tab to show all enabled checkers and … by @cservakt in #4210
Faster run storage
Thanks to a new optimization, the run storage duration can be up to 50% faster.
- [store] Unique reports before storing by @Szelethus in #4152
New Static HTML Report Pages
- [cmd] Restructure static HTML generation so it can handle much larger result set. #4168
- [feat] Display dynamic analysis generated testcase and timestamp columns in static HTML #4172
New report filter to list closed and outstanding reports
A new filter has been added to list outstanding and closed reports. An outstanding report is a report with detection status new, reopened, unresolved with review status unreviewed or confirmed.
Web GUI improvements
- [fix] Fixing OFF and UNAVAILABLE detectionStatus in the report sidebar by @cservakt in #4127
- feat(gui): Checker status auditing by @whisperity in #4156
- test(gui): Add front-end test for checked status in AnalysisInfo dialog by @whisperity in #4202
- Showing closed reports by @cservakt in #4244
❗ Backward incompatible changes
None
🐛 Analyzer improvements
- [analyzer] Ignore
-fno-tree-dominator-opts
by @bo-dani in #4141 - [fix] Cppcheck premium version check by @bruntib in #4155
- [gcc] Don't emit a missing gcc warning if no checkers are enabled by @Szelethus in #4179
- [fix] --cppcheckargs should be present in "CodeChecker check" by @bruntib in #4178
- [gcc][GUI] Fix indentations for gcc fn calls bug reports by @Szelethus in #4182
- Add functionality to validate analyzer and checker options by @noraz31 in #4204
- Fix a bug in #3866 where check didn't respect --no-missing-checker-error by @Szelethus in #4217
- Display warning if the compilation database is empty by @noraz31 in #4226
- Do not allow parse if the does not exist by @noraz31 in #4212
- [fix] Pass
envp
toposix_spawn
inld_logger
by @bruntib in #4146 - [analyze] Removing long enabled checker list at info log level by @dkrupp in #4103
💻 CLI/Server improvements
- Fix debug logging in store by @vodorok in #4134
- Fix remote server path resolution by @vodorok in #4131
- [report-converter][fix] Don't crash when we can't find the checker name for ubsan by @Szelethus in #4143
- Fix typo 'vesion' in sarif conversion template by @SirMutantRat in #4140
- [report-converter] Allow for empty strings in sanitizer error msgs by @Szelethus in #4147
- [fix] Eliminate unnecessary error logging by @bruntib in #4162
- Fix impossible blame info collection by @vodorok in #4190
- fix(migration): Migrate reports with appropriate default checker ID by @whisperity in #4191
- fix(migration): Do not emit log output for
checker_id
normalisation by @whisperity in #4198 - feat(server): Multiprocess migration and db_cleanup #4175
- [fix] Prevent overlapping report groups #4215
- [fix] Replace UTF-8 dash characters #4216
- [cmd] Check for non-existing source components by @bruntib in #4203
- Fix a crash where config handlers were built with missing binaries by @Szelethus in #4241
- [fix] Creating new temporary directory for zip files by @cservakt in #4237
- [db] Faster query for comment garbage collection by @bruntib in #4254
- [fix] Use module uuid instead of tempfile by @bruntib in #4253
- [cmd] Add --anywhere-on-report-path flag to CLI by @bruntib in #4255
- Support relative paths in the --file option by @noraz31 in #4250
- [Fix] Drop foreign key constraints for faster analysis info deleting by @cservakt in #4259
🌳 Environment
📖 Documentation updates
- [doc] Fix documentation URL in highlights page by @bruntib in #4136
- [docs] Rewrite the docs for diff by @Szelethus in #4006
- chore(docs): Remove mentions of Python 2 and ancient Clang limitations from the README by @whisperity in #4174
- Update usage.md: fix typo by @ArnaudBienner in #4153
- Fix Broken Links In Documentation by @justindhillon in #4159
- Fix typos by @omahs in #4173
- additional guidance for silicon mac users by @feyruzb in #4188
- chore(config): [clangsa][clang-tidy] Fix dead
doc_url
s in checker labels by @whisperity in #4214 - [config] Label Clang 18.0-19.trunk SA & Tidy checkers by @sylvestre in #4193
- [fix] Links in static HTML files should be relative by @bruntib in #4236
- feat(script): Verify the existence of checker config
doc_url
pages and find appropriate older releases for gone (removed, dealpha, etc.) checkers by @whisperity in #4207
🔨 Other
- Bump version to 6.24.0 by @vodorok in #4126
- Bump follow-redirects from 1.15.3 to 1.15.4 in /web/server/vue-cli by @dependabot in #4151
- Bump gitpython from 3.1.37 to 3.1.41 in /web by @dependabot in #4150
- [fix] Fixing getReportAnnotations subquery by @cservakt in #4229
- chore(ci): Disable failing and dangerous PyPI publishing job by @whisperity in #4231
- Updating clangsa sei cert mapping for clang 18 by @dkrupp in #4239
- chore(config): Add automatically generated
doc_url
s andseverity
s by @whisperity in #4224 - chore(config): [clang-tidy] Update SEI-CERT Guideline mappings by @whisperity in #4235
- [config] Adding sei-cert rule mappings for clang diagnostics by @dkrupp in #4243
- Always pass absolute paths to skip handler by @vodorok in #4227
- [config] Minor updates of the clangsa, clang-tidy profiles by @dkrupp in #4246
- Make sure that the Number of runs is displayed correctly by @noraz31 in #4242
- [fix] Store temp .plist files in report dir during store by @bruntib in #4248
- [feature] Adding guideline label to Checker Coverage tab by @cservakt in #4247
New Contributors
- @SirMutantRat made their first contribution in #4140
- @bo-dani made their first contribution in #4141
- @justindhillon made their first contribution in #4159
- @omahs made their first contribution in #4173
- @feyruzb made their first contribution in #4188
- @noraz31 made their first contribution in #4204
Full Changelog: v6.23.1...6.24.0