:bug: Analyzer improvements
- **[report-converter] Support Roslynator** (3765)
The [Roslynator](https://github.com/JosefPihrt/Roslynator) project contains several analyzers for C# built on top of Microsoft Roslyn. CodeChecker now supports the visualization of these C anlaysis results. It also provides a [.NET tool](https://github.com/JosefPihrt/Roslynator#roslynator-command-line-tool-) for running Roslyn code analysis from the command line. It is not limited to Microsoft and Roslynator analyzers, it supports any Roslyn anaylzer. It can also report MSBuild compiler diagnostics.
:computer: CLI/Server improvements
- **Make `CodeChecker store` about twice as fast** (3777)
This small change from a regex to a string search is expected to shave off the time it takes to run a `CodeChecker store` command by as much as 50%!
- **[fix] Speed up resolved diffing** (3771)
This fixes the everlasting diff runtime, when the report count is large (~60000) and the ReviewStatusRule count is also substantial.
:repeat: Profile changes
- **[analyzer][clang][clang-tidy] Assign new check profiles** (3769)
- `bugprone-assignment-in-if-condition`: extreme (no longer in the `sensitive` and `default` profiles)
- `bugprone-signal-handler`: default (new), security (new), sensitive, extreme
- `bugprone-suspicious-realloc-usage` (new): default, sensitive, extreme
- `bugprone-stringview-nullptr` (new): default, sensitive, extreme
- `bugprone-unchecked-optional-access` (new): extreme
- `cert-sig30-c`: removed from all profiles (as it is an alias to [bugprone-signal-handler](https://clang.llvm.org/extra/clang-tidy/checks/bugprone/signal-handler.html))
- `cppcoreguidelines-avoid-const-or-ref-data-members`: sensitive (new), extreme
- `cppcoreguidelines-avoid-do-while` (new): extreme
- `misc-const-correctness`: removed from all profiles (it was too extreme even for extreme)
- `misc-misleading-bidirectional`: default, security (new), sensitive, extreme
- `misc-misleading-identifier"` (new): default, security, sensitive, extreme
- `alpha.unix.Errno`: sensitive (new), extreme
- `core.uninitialized.NewArraySize` (new): default, sensitive, extreme
- `alpha.unix.cstring.UninitializedRead` (new): extreme
:book: Documentation updates
- **[analyzer][doc] Mention that Z3 as the constraint solver is highly unstable** (3772)
While LLVM supports the usage of Z3, that doesn't mean the same for the Clang Static Analyzer. It is a highly experimental feature that may or may not be generally available in a stable way, which is now better explained in the [docs](https://github.com/Ericsson/codechecker/blob/master/docs/analyzer/checker_and_analyzer_configuration.md#z3-theorem-prover) and in `--help` messages.
- **[doc] Refurbish several parts of the `README`** (3763)
- Self-advertise the CodeChecker GitHub CI action!
- Added the PLDI'2020 talk about CodeChecker to the papers section
- Moved information about Python 2 lower as it is no longer really an important thing in today's world
- Figure out the new LLVM monorepo commit for the referenced SVN commit that introduced Bug hashes to Clang SA
:hammer: Other improvements/fixes
- **Quick fix for cppcheck environment** (3744)
The cppcheck needs the original environment when invoked. This quick fix restores it at analyzer invocation.
- **[bugfix] Old client has different behavior with new server** (3746, 3747)
So far, we have supported the communication in between a CodeChecker server and almost all older CodeChecker clients versions. For CodeChecker servers on version 6.20.0, clients issueing `CodeChecker cmd diff` to the server got an incorrect results, which this PR fixes.
- **[bugfix] Don't update review status date** (3749)
When a review status is set in the GUI then a new entry is inserted to review_statuses table. Every time the same report is stored, its review status date used to be updated, which was a bug, since the storage date is NOT the same as the review status date.
- **Document 'cppcoreguidelines-avoid-const-or-ref-data-members'** (3734)
- **Document 'bugprone-suspicious-realloc-usage'** (3755)
- **Escape &, <, > from the source C-files to HTML-output** (3748)
This fixed a bug where `CodeChecker parse --export html` produced an invalid HTMl file.
- **[feat] Comment lines in skipfile** (3768)
Hashmark () character can be used for commenting lines out in skipfiles, and can now be used for CodeCheckers skip files!
- **Issue a warning about this release being only an RC** (3780)
CodeChecker version now warns users about the current release being only a release candidate. Please create a bug report if you find anything wrong, so we can fix it for the proper release!
- **[fix] Ignore files that .gitignore ignores** (3785)
- **Set "anywhere on path" in URL** (3783)
In the previous release, on the gui, when the "anywhere on path" filter was set, it wasn't saved in the URL. It is now!
- **[bugfix] Don't crash with intercept-build based compilation database** (3685)
CodeChecker was only really compatible with compilation databases where "command" was used instead of "arguments" as the actual command to execute. This is now fixed.
- **[db] Garbage collection of analysis_info timeout** (3775)
The garbage collection of analysis_info table has been restructured because the original query exceeded a 2min timeout.