v0.9.2
We are pleased to announce the release of the SonarQube C++ Community Plugin version 0.9.2.
See lists below for features added and bugs fixed in this release.
SonarQube compability
- tested and released for SonarQube 4.5, see also SonarQube compatibility matrix
- Upgrade Instructions
- Installation Instructions
Enhancements
- preprocessor enhancements:
- parser enhancements:
- improve parsing speed (#299, #294, #260)
- ignore C++ keywords in C files (sonar.cxx.cFilesPatterns) (#291, #345, #353)
- support special meaning of token paste operator for GCC (#214, #298)
- support Visual Studio inline assembler (#262, #333, #340)
- support GCC case range extension (#235)
- support ISO C99 compound literals (#237)
- support ISO C99 designated initializers (#236)
- metrics enhancements:
- rule enhancements:
- new rules to check for violations on cyclic package dependencies (#232, #292)
- new rule to check for undocumented API (#307, #318, #338)
- new rule FileRegularExpressionCheck: can be used to create rules which will be triggered when a file matches a given regular expression (#339, #179)
- new rule LineRegularExpressionCheck: can be used to create rules which will be triggered when a line matches a given regular expression (#341, #179)
- new rule FileEncodingCheck: check if all characters of a file can be encoded with the predefined charset (#223, #328)
- new rule MissingIncludeFileCheck: generate a violation for missing include files (#52, #239)
- new rule SwitchLastCaseIsDefaultCheck: test that a switch statement has 'default' label and that the 'default' is the final case (#320)
- XPathCheck, FileRegularExpressionCheck , LineRegularExpressionCheck: new option allows Ant-style patterns to match a path (#335)
- UselessParenthesesCheck: ignores generic code now (#231)
- TooManyStatementsPerLineCheck: new option to allow case and break in one line (#230)
- TooLongLineCheck: add a tab width setting to compute the length of the line more accurate (#233)
- MagicNumberCheck: improve magic number detection - const variables are no more violations (#296, #332)
- Unsupported Code Checker Custom Rules: make import of invalid XML rule files more stable (#254)
- update Cppcheck messages for 1.67 release (#286, #264)
- update PC-lint messages for 9.00l release candidate (#264)
- coverage enhancements:
- possibility to set coverage for source files without coverage report to zero to get more realistic Technical Debt values (sonar.cxx.coverage.forceZeroCoverage) (#218, #321)
- Bullseye coverage reports: support coverage data on top level (src tag without folder tag) (#243, #250, #251)
- Bullseye coverage reports: make path handling more robust (#273, #277)
- add SQALE model definitions for the built-in checks (#199)
Bugfixes
- Preprocessor does not support uint64 (#224)
- No meaningful error message if force-included file cannot be found (#225)
- Preprocessor does not support preprocessor expressions in includes (#227)
- Bulleye coverage file is not parsed correctly (#243)
- Server crash after updating 'External rules definition' with 0.9.1 (#253)
- How can I find out whats going on (#260)
- Unit test results not displayed in widget (#263)
- Bullseye based coverage import reports 'cannot find the file ...' (#273)
- Issues in digesting boost test results (#276)
- Very slow performance of nested parenthesis (#294)
- Const declarations are detected as magic numbers when not inside a function (#296)
- Unable to parse named variadic arguments (#300)
- Incomplete macro replacement rescanning (#302)
- NPE in org.sonar.cxx.visitors.AbstractCxxPublicApiVisitor.visitMemberDeclarator (#327)
- Cannot feed Valgrind report (#336)
- The sslr-cxx-toolkit breaks when parsing some files (#374)
- Wrong expansion of macros which dont contain whitespace after the parameter list (#380)
Thanks ....
go to all contributors (in alphabetical order):
@Bertk
@guwirth
@jmecosta
@lcintrat
@Typz
@Zetten
... and all people which were active on the Issue Tracker!