New features
`PyPI` package support (3251, 3301).
PyPI is the most commonly used central repository for Python packages. For this reason from this release we will provide an official [PyPI package](https://pypi.org/project/codechecker/) for CodeChecker. This PyPi package can be easily installed on both Unix and Windows based systems easily by using the `pip` command: `pip install codechecker`.
Add compilation database generator for Bazel (3226, 3284).
CodeChecker was extended with a tool that can capture compilation database of a `Bazel` built product without actually performing compilation. For more information [see](https://github.com/Ericsson/codechecker/blob/master/docs/tools/bazel.md).
Exporter/importer command for `CodeChecker cmd` (3116)
New command line options are introduced (`CodeChecker cmd export` and `CodeChecker cmd import`) which can be used to export comments and review status for a particular run in a JSON based format from a running CodeChecker server and import it to another server.
sh
Export data from one server.
CodeChecker cmd export -n myrun \
--url https://first-server.codechecker.com:443 2>/dev/null | python -m json.tool > myrun_export.json
Import data to another server.
CodeChecker cmd import -i myrun_export.json --url https://second-server.codechecker.com:443
*Sparse* and *Cpplint* analyzers support (3160, 3248).
The `report-converter` tool was extend with two more analyzers:
- [`Sparse`](https://git.kernel.org/pub/scm/devel/sparse/sparse.git) which is a semantic checker for C programs; it can be used to find a number of potential problems with kernel code.
- [`CppLint`](https://github.com/cpplint/cpplint) which is a lint-like tool which checks C++ code against Google C++ Style Guide.
For more information [see](https://github.com/Ericsson/codechecker/blob/master/docs/tools/report-converter.md).
Analyze improvements / fixes
- Set parse subcommand exit code to 2 when any report exist (3313).
- Use `maximum CPU` resources by default during analysis (3249).
- Generate reproducer (3324).
- Enable the build logger fix for CR and LF by default (3310).
- Fix `ccache` compiler detection (3204).
- Adding severities for checkers (3218, 3337).
- Remove some code duplication from CodeChecker check command (3217).
- Add `altera-unroll-loops` to the list of checkers (3266).
- Adding cert checkers to sensitive profile (3338).
- Relative include paths to --sysroot (3259).
- Handle getting options for old analyzer version (3297).
- Fix logger compilation warnings (3305).
- Fix yaml dumper (3331).
CLI (parse, diff, etc.) improvements / fixes
- Fix storage of multiple report directory (3263, 3281, 3339).
- Fix creating session file (3212).
- Handle no mandatory env var when using gerrit output (3196).
- Handle invalid proxy settings (3198).
- Fix for SpotBugs Report Conveter with Plugins (3262).
- Use codechecker_report_hash module (3270, 3317).
Server improvements / fixes
- Cleanup unused data (comments, review statuses) (3243).
- Add analyzer commands for reports (3320, 3336).
- Add documentation link to the bug report (3330).
- Fix failed files uniqueing on the statistics page (3285).
- Allow to change the outstanding reports chart resolution (3179).
- Change granularity for Number of outstanding reports chart (3036).
- Faster query for reports (3316).
- Fix quotes in system comments (3094).
- Add button to copy file path (3176).
- Close filter settings on apply (3178).
- Run filter is not working for the new reports at the Product overview statistics (3035).
- Use textarea at source component description (3190).
- Show review status selector even if status change is disabled (3195).
- Highlight row in code editor on hover event (3224).
- Highlight report on the scrollbar (3225).
- Get CodeChecker API version automatically in webpack (3265).
- Move generated API stubs to the repo (3268, 3288).
- Workaround for SQLite limitation in severity change (3282).
- Permission checking compares auth. names in case insensitive… (3279)
Other improvements fixes.
- Scrollable sidebar at plist2html (3327).
- Version upgrades (3211, 3034, 3252, 3333).
- Add coverage for unit tests (3315).
- Add type hints (3215, 3216, 3214, 3280).
- Use Python3 enums (3291).
- Use python3 new style classes (3290).
- Documentation updates (3222, 3246, 3261, 3292, 3295, 3302).
- Performance test improvement (3278, 3287, 3289, 3325).
- Use singleton when creating context objects (3193).
- Fix non existen report directory test (3250).
- Fix unused import (3264).
- Compile test project with c++11 explicitly (3283).
- Add semicolon to web Makefile (3298).
- Ignore errors when removing workspace directories (3300, 3329).
- Refactor process runner function (3307).
- Enable `cyclic-import` and `consider-iterating-dictionary` checks (3314).
- Fix running tu_collector test target (3334).