New
- Enabling expand-macros feature of clang #1994
- Since clang v8 macros can be expanded in the reports. This feature is enabled by default in CodeChecker
so the reports will always contain macro expansions for better report understanding.
- Since clang v8 macros can be expanded in the reports. This feature is enabled by default in CodeChecker
- Specify only a sub string of the checker name for suppression #2019
- Source code review status comments will work with checker name sub strings (useful if a checker is moved between packages)
- New
securitycheckers profile #1054- New
securityprofile with multiple security related checkers is available.
RunCodeChecker checkers --profile securityfor the full list of checkers.
- New
Changes
- Added severity levels of yet uncategorized checkers and checker profiles were updated #2034
Default profile:
Added
- alpha.cplusplus.UninitializedObject
- bugprone-copy-constructor-init
- bugprone-terminating-continue
- bugprone-throw-keyword-missing
- bugprone-unused-return-value
- bugprone-virtual-near-miss
- cert-fio38-c
- cplusplus.InnerPointer
- optin.cplusplus.VirtualCall
Sensitive profile:
Added
- alpha.cplusplus.UninitializedObject
- alpha.security.MmapWriteExec
- bugprone-copy-constructor-init
- bugprone-exception-escape
- bugprone-macro-parentheses
- bugprone-terminating-continue
- bugprone-throw-keyword-missing
- bugprone-unused-return-value
- bugprone-virtual-near-miss
- cert-dcl54-cpp
- cert-err09-cpp
- cert-fio38-c
- cert-msc51-cpp
- cplusplus.InnerPointer
- optin.cplusplus.VirtualCall
Extreme profile:
Added
- alpha.cplusplus.UninitializedObject
- alpha.security.MmapWriteExec
- bugprone-copy-constructor-init
- bugprone-exception-escape
- bugprone-macro-parentheses
- bugprone-terminating-continue
- bugprone-throw-keyword-missing
- bugprone-unused-return-value
- bugprone-virtual-near-miss
- cert-dcl54-cpp
- cert-err09-cpp
- cert-fio38-c
- cert-msc51-cpp
- cplusplus.InnerPointer
- cppcoreguidelines-narrowing-conversions
- misc-unused-parameters
- optin.cplusplus.VirtualCall
- optin.performance.Padding
- security.insecureAPI.bcmp
- security.insecureAPI.bcopy
- security.insecureAPI.bzero
- security.insecureAPI.strcpy
You can get more information about the checkers here and here.
Improvements
- Show supported analyzers at cmd checkers #2055
- add readthedocs link #2041
- introduce readthedocs #1935
- add docs as a special route #2052
- Gerrit-Jenkins integration is extended #2061
- rename passwords json file in the doc #2035
- add new mkdocs target to build the documentation #2026
- update test documentation #1985
- Resurrect --compiler-info-file analyze flag. #2039
- [userguide] Disable review status change feature #2002
- Travis clang back to 7 #2022
- run brew cleanup only in osx in travis #2016
- load only files with ".so" extension as a plugin #2014
- Run python style tests before test target #2010
- Improve web test performance #2004
- Keep clang flags #2003
- Update travis llvm version #1998
- Create pip package from tu-collector #1995
- Pip package from plist-to-html #1993
- Increase performance of the travis jobs #1991
- Add pylint and pycodestyle targets #1952
- Add more test targets to the main Makefile #1951
- Handle cases when plugin directory does not exist #1946
- Use compiler_info.json file in debug scripts #1941
- Give better error message on keyerror at package context #1933
- Extend version file with git information #1931
- Download external dependencies with Makefile #1929
- Add example for CodeChecker cmd diff #1927
- Tool to create new compiler info files from old ones. #1909
- return error in case of wrong checker profile name #2059
- create test case for mixed compilation x dependency file case #2050
plist to html tool improvements
- Improve plist-to-html sort performance #2037
- [plist-to-html] Ordering of reports #1973
- [plist-to-html] Link to index.html #1972
- [plist-to-html] Sort the reports in ascending order by file path #2054
- [plist-to-html] Ordering reports #2028
- collect statistics for plist to html parser #1035
Bug Fixes
- The skipped flags are skipped in case of Clang too #2062
- A compiler doesn't provide an architecture target #2067
- fix missing sys import #2064
- isystem path was set wrong #2060
- fix profile listing on name conflict #2058
- handle character decoding problems (locale mismatch) #1770
- review status is not set #1647
- filter based on detection date without setting the hour value #2048
- detection date filter not set from url #2047
- plist to html index.html sorting problem #2046
- Fix package build #2029
- Yet another logger fix #2027
- Logging does not preserve escaped quotes #2025
- Cleanup database on run remove #2018
- Fix travis missing "then" keyword #2017
- Refactoring docs #2013
- Processing target architecture first in log parser #2008
- Fix run_test target #2006
- Fix default target call #2000
- return an empty string at getting compiler includes #1997
- Fix cleaning venv_dev #1996
- Compile action contains bot compiler and preprocessor flags #1989
- Fix authentication #1988
- fix analyzer_statistics module import #1982
- Introducing --compile-uniqueing parameter #1965
- Fix run_test target #1958
- Fix cleanup target #1950
- Do not store failed files when using 6.9.0 version #1943
- Fix failed source list of analysis statistics #1942
- There is no way to jump to a note, like you can to events #1940
- fix action list length check #1938
- Fix verbosity in build scripts #1936
- CodeChecker log generated json can't handle filenames with spaces #1366
- Incorrection documentation about "cmd login" #1133
Source repository changes
This release contains many bug fixes and a large amount of source code refactoring.
We started the refactoring to split up the source tree to easier manageable pieces.
The work is not fully finished but we are close.
Separating the main parts will allow us to release and develop them independently in the future.
The main new parts of the restructured repository are:
- analyzer (run and configure the supported static analyzers)
- tools/build-logger/ (log compiler invocations during build)
- web (web server and client to store/query and manage the reports)
- tools (independent tools which are used by the analyzer or web)
- plist_to_html
- tu_collector
You can find more details about the new layout here #1830
Refactoring
- Move webserver unit tests under server #1955
- allow to set the base wp dir from env variable for tests #1983
- Allow to set workspace for web tests #1980
- Reduce the number of travis matrices #1975
- Cache downloaded binary osx packages on travis #1966
- Skip generated files from tests projects in gitignore #1959
- use templates to generate html files #2040
- Create commands.json for sub-commands #1932
- Create package directory #1977
- Separate directory for analyzers #1976
- call setup.py only in the target #2015
- Refactoring web docs #2024
- Revert back package build scripts to py2 #1945
- remove py3 incompatible uppercase conversion #1923
- python3 compatible exception cleanup #1922
- Build the package before running functional tests #1954
- cleanup make targets with/without virtualenv #2007
- merge dev and test virtual environments #2005
- Refactoring CONTRIBUTING.md file after split up #2011
- Use Makefile to build CodeChecker package #1937
- Refactoring generated CodeChecker dependency #1990
- Refactoring plist to html #1986
- Refactoring config files #1979
- Add targets to build analyzer and web separately #1974
- Rename libcodechecker to codechecker_common #1968
- Remove .noserc from root #1967
- Split up source repository #1964
- Split up refactoring #1963
- Fix CodeChecker version after split up #1962
- Get analyzer_statistics module from analyzer #1961
- Move some files to webserver common #1960
- Split up docs #1956
- Create separate contexts for analyzer and server #1953
- Split up server/client handling parts #1944
- Split up analyzer handling part #1939
- Remove psycopg2 from analyzer requirements #1999
- Prepare split up #1921
- finish logging cleanup #1911
- fix pylint old-style class warnings #1917
- py3 fix iterator protocol (next method change) #1926
- fix dict.items referenced when not iterating py3 #1925
- fix dict item was referenced when not iterating py3 #1928
- Move analyzer specific test projects under analyzer #1947
- Move server related test projects under server #1948