Skip to content

v6.19.0

Compare
Choose a tag to compare
@csordasmarton csordasmarton released this 11 Mar 09:50
· 973 commits to master since this release
5f5b6b7

❗❗❗ Backward incompatible changes ❗❗❗

  • Fix JSON format of CodeChecker version subcommand (#3558)
    The output of the CodeChecker version -o json command wasn't a valid JSON format. From this release CodeChecker will provide a valid JSON output for this command.
    For more information see the documentation.
  • Not allowing disabling modeling checkers in ClangSA (#3323)
    When a Clang Static Analyzer checker is disabled in CodeChecker, clang is invoked with the analyzer-disable-checker flag. This allows the user disabling core modeling checkers such as unix.DynamicMemoryModeling. This causes malfunctioning of depending checkers.
    From this release modeling and debug checkers (listed with clang -cc1 -analyzer-checker-help-developer) will not be listed and cannot be disabled through CodeChecker with the --enable and --disable flags.
    They can be enabled/disabled through the Clang Static Analyzer specific --saargs flag only.
  • Change minimum supported node version (#3581, #3586)
    The minimum supported node version to build CodeChecker after this release is >=14.17.0.

⭐ New features

  • Add print-steps option to CodeChecker cmd diff command (#3555)
    Without bug steps it is hard to understood the problem by a programmer. With this commit we will introduce a new option for the CodeChecker cmd diff command which can be used to print bug steps similar what we are doing at the CodeChecker parse command. This patch also solve the problem to print bug steps in HTML files for reports which comes from a CodeChecker server.
  • Support yaml CodeChecker configuration files (#3602)
    Multiple subcommands have a --config option which allow the configuration from an explicit configuration file. The parameters in the config file will be emplaced as command line arguments. Previously we supported only JSON format but the limitation of this format is that we can't add comments in this file for example why we enabled/disabled a checker, why an option is important etc.
    From this release we will also support YAML format:
    analyzer:
      # Enable/disable checkers.
      - --enable=core.DivideZero
    For more information see the documentation.

💻 CLI / Server improvements / fixes

  • Allow --file and skipfile option to be given together and analyze header file (#3616)
    The CodeChecker VSCodePlugin uses the --file parameter to analyze single files. Large projects load in their configuration using the --config parameter and if there is a -i skipfile given in the config, CodeChecker analyze call drops an error. From this release CodeChecker will allow -i skipfile and --file to be given together.
    Also if a header file is given to the --file option CodeChecker under the hood will try to figure out which source files are depends on the given header file and we will analyze these source files.
  • Allow escaping : in run names with \: (#3536)
    In certain scenarios, the run name might contain a : character that does NOT separate a tag from a name. Commands such as server and cmd results accept : as a literal in the name, but cmd diff previously cut it as the "run tag" separator.
  • Update allowed TLS versions (#3594)
    TLS1 and TLS1.1 were deprecated in RFC8996. From this release CodeChecker will enforce the newer TLS1.2 or TLS1.3.
  • Fix HTML generation for CodeChecker cmd diff command (#3600)
    If the diff command result contained reports from multiple source files (e.g.: a.cpp + b.cpp) the CodeChecker cmd diff command in HTML format generated HTML files for each source file but inserted the same list of reports in all of the HTML files. From this release CodeChecker will insert only those reports to a generated HTML file which are really related to that file.
  • Relative doc url to absolute file path (#3609)
    Convert relative doc_url value's to absolute file paths in the CodeChecker checkers output. This way other tools can open and view these documentation files easily.
  • Fix html generation for report directory without plists (#3610)
    Fix HTML generation for report directory which doesn't contain any analyzer result (plist) file.

🔁 Profile changes

  • The following checkers are added to the following profiles (#3621)
    • bugprone-shared-ptr-array-mismatch: default, extreme, sensitive
    • misc-misleading-bidirectional: default, extreme, sensitive
    • readability-container-contains: default, extreme, sensitive
  • The following checkers are removed from the following profiles (#3618)
    • cppcoreguidelines-narrowing-conversions: extreme

🐛 Analyze improvements / fixes

  • Proper handling of multi-target build (#3598)
  • Prefer ldlogger over intercept-build (#3605)
  • Quote command line segment using shlex (#3578)
  • Fix ldlogger escaping a bunch of characters (#3589)
  • Handle relative file paths in compilation database (#3587)
  • Avoid plist filenames being the same (#3588)
  • Proper exit code for CodeChecker check in case of exception (#3603).
  • Print info message about logger tool (#3573)
  • Add severity for readability-duplicate-include (#3592)

📖 Documentation updates

  • Update documentation with multiple source code comments in the same line (#3597)
  • Highlight that user must be logged in before token generation (#3599)
  • List possible severity levels for JSON report format (#3604)
  • Extend documentation with implicitly disabled checkers under --enable-all (#3611)
  • Added link to basic database setup (#3541)
  • Fix grammatical and spelling errors in documentations (#3557)
  • Mention CodeChecker vscode extension in the docs (#3585)

🔨 Other improvements / fixes.

  • Thrift Python client example (#3575)
  • No rebuild on satisfied requirements (#3547)
  • Port LD-logger tests to python (#3153)
  • Fix compile warnings, missing return statements, etc. (#3590)
  • Fix the prepare debug scripts (#3614)
  • Upgrade python-ldap to 3.4.0 (#3550)
  • Upgrade lxml to 4.7.1 (#3553)
  • Upgrade npm packages (#3581, #3586)
  • Upgrade python version to 3.9.7 in docker image (#3591)

For more information check the milestone.


🎉 CodeChecker VSCode plugin

We are proud to announce the official release of CodeChecker VSCode plugin.

🌟 Main features

  • Run CodeChecker analysis from the editor and see the results automatically.
  • Re-analyze the current file when saved.
  • Commands and build tasks for running CodeChecker as part of a build system.
  • Browse through the found reports and show the reproduction steps directly in the code.
  • Navigate between the reproduction steps.

💻 Trying It Out

  1. Install CodeChecker version 6.18.2 or later and optionally add it to the PATH environment variable.
  2. Install CodeChecker extension from the Visual Studio Marketplace, from Open VSX or download manually from Downloads.
  3. Check the path to CodeChecker and set your preferred command-line arguments - see Configuring CodeChecker for more information.
  4. Open your project, and run an analysis, or browse through the found reports!