Skip to content

Releases: SonarOpenCommunity/sonar-cxx

V1.2.0

09 Jan 16:29
Compare
Choose a tag to compare

We are pleased to announce the SonarQube C++ Community Plugin version 1.2.0.
See lists below for features added and bugs fixed in this release.

SonarQube compability

Enhancements

  • SQ 7.3 and SQ 7.4 support #1541 #1581
  • minimal supported SQ API is 6.7 #1317
  • Complexity metrics are performed on original source code now #1547 #1552
    • In the past we were first preprocessing the code and were calculating the complexity metrics on base of the preprocessed code. This could lead to confusing metric numbers because macro code is counted multiple times and could also be from external libraries. Generated code (among others macro expansions) doesn't affect the calculation of cognitive / cyclomatic complexity now. This can lead to different but easier to understand metrics.
  • GCC and MSVC compiler sensor can be used at the same time now #1533 #1180
    • BREAKING CHANGE : sonar.cxx.compiler settings are no more supported!
      • use sonar.cxx.vc to read MSVC reports
      • use sonar.cxx.gcc to read GCC reports
      • use sonar.cxx.msbuild to read includes and defines from MSBuild log file
  • implement explanation for cyclomatic and cognitive complexity checks #1494 #1551 #1546 #1537 #1535
  • Clang-Tidy 8 support #1536 #1555 #1558 #1566
  • Cppcheck 1.85 support #1545 #1576
  • make default logging less verbose (move some parts to debug info) #1563 #1565 #1567
    • Setting sonar.cxx.missingIncludeWarnings is no more available. Turn debug info on to get information.
  • The naming of the following metrics have been changed, see Upgrade Instructions
    • perc_complex_functions -> CXX-PERC_COMPLEX_FUNCTIONS
    • loc_in_complex_functions -> LOC_IN_COMPLEX_FUNCTIONS
    • perc_loc_in_complex_functions -> CXX-PERC_LOC_IN_COMPLEX_FUNCTIONS
    • big_functions -> CXX-BIG_FUNCTIONS
    • loc_in_big_functions -> CXX-LOC_IN_BIG_FUNCTIONS
    • perc_big_functions -> CXX-PERC_BIG_FUNCTIONS
    • perc_loc_in_big_functions -> CXX-PERC_LOC_IN_BIG_FUNCTIONS
    • loc_in_functions -> CXX-LOC_IN_FUNCTIONS
  • refactoring #1526 #1529 #1530 #1532 #1582 #1562

Bugfixes

  • Sensors have problem to import results because of symbolic links and path normalization #1574 #1575
  • C++: support alternative operators #1569 #1572 #1577
  • MethodName check fails on constructor of nested class #1557 #1559
  • API check: Method defined in header file, but out of class, marked as undocumented / Public API: ignore methods outside of class #1543 #1544 #1580
  • xUnit sensor not run on maven projects #1523 #1524
  • C-Plugin: sensors use wrong rules repository keys / rules repository ignored the language specific repository suffix #1521 #1522
  • java.lang.StackOverflowError during parse of source file / protect ExpressionEvaluator from self-referential macros #1516 #1517
  • cppcheck sensor: wrong handling of warnings with multiple locations #1511 #1512
  • sonar-cxx custom metrics are not displayed/saved #1509 #1514
    • enable code metrics for public API
    • support multi-module projects
    • reduce memory footprint by moving of metric aggregation to the computation engine
  • Property 'sonar.cxx.coverage.reportPath' should be made using 'getStringArray' method. The SonarQube plugin using this property should be updated #1384 #1568
  • cppcheck.xml fix name and description of unmatchedSuppression #1564
  • [Travis/AppVeyor] Updates SQ distribution URL #1571
  • cannot find include files #1230
  • Symlink support #1574 #1575

Known Issues

For an up to date list of known issues see the issue tracker.

  • not compatible with Java 9
  • Ensure that a rule is enabled if you get no results. In new SQ versions the default profile is read-only. The cxx plugin does not enable all rules per default.
  • Starting with SQ 6.2 there are some new metrics and some are no more available. Please have a look to the SonarQube release notes.
  • test execution metrics are not supported
  • The Cppcheck plugin is deprecated and not working in parallel to this plugin. This plugin provides an own Cppcheck sensor.
  • C plugin and JSON Compilation Database support are experimental only

Thanks ....

go to all contributors (in alphabetical order):

@guwirth
@ivangalkin
@moriarty
@nathanaelg

... and all people which were active on the issue tracker!

V1.1.0

07 Jul 08:35
6a44b24
Compare
Choose a tag to compare

We are pleased to announce the SonarQube C++ Community Plugin version 1.1.0.
See lists below for features added and bugs fixed in this release.

SonarQube compability

Enhancements

  • SQ 7.2 support #1491
  • minimal supported SQ API is 6.7 #1317
  • add function complexity and size metrics #1398:
    • new metrics:
      • Complex Functions: Number of functions with high cyclomatic complexity
      • Complex Functions (%): % of functions with high cyclomatic complexity
      • Complex Functions Lines of Code: Number of lines of code in functions with high cyclomatic complexity
      • Complex Functions Lines of Code (%): % of lines of code in functions with high cyclomatic complexity
      • Big Functions: Number of functions with too many lines
      • Big Functions Lines of Code: Number of lines of code in functions with too many lines
      • Big Functions (%): Number of lines of code in functions with too many lines
      • Big Functions Lines of Code (%): % of lines of code in functions with too many lines
      • Lines of Code in Functions: Number of lines of code in function bodies
    • new configuration properties:
      • sonar.cxx.funccomplexity.threshold / Cyclomatic complexity threshold:
        Cyclomatic complexity threshold used to classify a function as complex
      • sonar.cxx.funcsize.threshold / Function size threshold:
        Function size threshold to consider a function to be too big
  • Testwell CTC++ support (Verifysoft Technology GmbH) #1486
    • add coverage sensor 'Testwell CTC++' for textural reports
  • Cppcheck 1.84 support #1490 #1495
  • refactoring #1499 #1498 #1496 #1487 #1482 #1481 #1503 #1504

Bugfixes

  • Highlighting error for concatenated strings on multiple lines #1468 #1480

Known Issues

For an up to date list of known issues see the issue tracker.

  • not compatible with Java 9
  • Ensure that a rule is enabled if you get no results. In new SQ versions the default profile is read-only. The cxx plugin does not enable all rules per default.
  • Starting with SQ 6.2 there are some new metrics and some are no more available. Please have a look to the SonarQube release notes.
  • test execution metrics are not supported
  • The Cppcheck plugin is deprecated and not working in parallel to this plugin. This plugin provides an own Cppcheck sensor.
  • C plugin and JSON Compilation Database support are experimental only
  • Symlinks are not supported.

Thanks ....

go to all contributors (in alphabetical order):

@ericlemes
@guwirth
@ivangalkin
@rufinio

... and all people which were active on the issue tracker!

V1.0.0

13 May 20:25
785ef52
Compare
Choose a tag to compare

We are pleased to announce the SonarQube C++ Community Plugin version 1.0.0.
See lists below for features added and bugs fixed in this release.

SonarQube compability

Enhancements

Bugfixes

  • problem with sonar.cxx.jsonCompilationDatabase when it includes testcode you don't want to scan #1474 #1476
  • clangsa report is not uploaded into sonar because of NullPointerException #1442 #1477
  • fix squid:S2259 #1431
  • wrong code coverage for empty line, constexpr, method declaration #1425

Know Issues

For an up to date list of known issues see the issue tracker.

  • not compatible with Java 9
  • Ensure that a rule is enabled if you get no results. In new SQ versions the default profile is read-only. The cxx plugin does not enable all rules per default.
  • Starting with SQ 6.2 there are some new metrics and some are no more available. Please have a look to the SonarQube release notes.
  • test execution metrics are not supported
  • The Cppckeck plugin is deprecated and not working in parallel to this plugin. This plugin provides an own Cppcheck sensor.
  • C plugin and JSON Compilation Database support are experimental only
  • Symlinks are not supported.

Thanks ....

go to all contributors (in alphabetical order):

@Bertk
@guwirth
@ivangalkin

... and all people which were active on the issue tracker!

V0.9.9

15 Jan 20:48
7fef938
Compare
Choose a tag to compare

We are pleased to announce the SonarQube C++ Community Plugin version 0.9.9.
See lists below for features added and bugs fixed in this release.

SonarQube compability

Enhancements

  • minimal supported SQ API is 6.7 #1317
    • Refactoring: remove conditional code for older SQ versions #1318
    • Refactoring: mark deprecated API #1329
  • updated parent POM to 41 #1316
  • Cppcheck 1.82 support #1370 #1373
  • support C++ Core Check improvements in Visual Studio 2017 15.5 #1309 #1375
  • improve parser LOG file regex for MSVC 14.11 #1356
  • Metrics #1339
    • Refactoring: FILE_COMPLEXITY_DISTRIBUTION metric is deprecated - removed #1333
    • Refactoring: COMPLEXITY_IN_FUNCTIONS metric is deprecated - removed #1332
    • Refactoring: COMPLEXITY_IN_CLASSES metric is deprecated - removed #1331
    • Refactoring: FUNCTION_COMPLEXITY_DISTRIBUTION metric is deprecated - removed #1330
  • Coverage
    • Refactoring: remove sonar.cxx.coverage.overallReportPath support #1322
    • Refactoring: remove sonar.cxx.coverage.itReportPath support #1321
    • Refactoring: remove sonar.cxx.coverage.forceZeroCoverage support #1320
    • Refactoring: remove CxxCoverageSensor from CxxSquidSensor #1335 #1327
    • Refactoring: CxxPlugin::testingAndCoverageProperties #1324
  • Refactoring: cleanup CxxFileLinesVisitor visitor #1323
  • Refactoring: Remove no more supported use cases from integration tests #1319
  • fix technical debt quality flaws, make quality gate green: #1369 #1368 #1362 #1358 #1357 #1354 #1349

Bugfixes

  • fix ERROR: sonar.cxx.other.xslt.1.inputs file is not defined #1367
  • Cobertura coverage source tag support #1364 #1353
  • fix selection options for compiler.parser #1361
  • C-Compiler parser : Cannot feed the data into sonar, details: 'java.lang.NullPointerException' #1359
  • fix CxxLint with and add unit tests #1355
  • fix custom rules support #1308 #1347 #1346 #1343
  • remove warning: CPD error in file - debug info now #1338 #1307

Know Issues

For an up to date list of known issues see the issue tracker.

  • V0.9.9 is not compatible with Java 9
  • Ensure that a rule is enabled if you get no results. In new SQ versions the default profile is read-only. The cxx plugin does not enable all rules per default.
  • Starting with SQ 6.2 there are some new metrics and some are no more available. Please have a look to the SonarQube release notes.
  • test execution metrics are not supported
  • The Cppckeck plugin is deprecated and not working in parallel to this plugin. This plugin provides an own Cppcheck sensor.
  • C plugin and JSON Compilation Database support are experimental only
  • Symlinks are not supported.

Thanks ....

go to all contributors (in alphabetical order):

@Bertk
@guwirth
@rufinio

... and all people which were active on the issue tracker!

V0.9.8

14 Nov 20:17
14d23db
Compare
Choose a tag to compare

We are pleased to announce the SonarQube C++ Community Plugin version 0.9.8.
See lists below for features added and bugs fixed in this release.

SonarQube compability

Enhancements

Bugfixes

  • Error during SonarQube Scanner execution: Unable to analyze file bug #1205
  • SQ6.4: java.lang.NoClassDefFoundError: org/sonar/graph/DirectedGraphAccessor bug #1154
  • syntax highlighting error: concatenated strings bug #1094
  • Fixes bullseye conditions to be shown in SQ UI #1237
  • JsonCompilationDatabase: defines are not supported #1234
  • consume empty VS coverage report / NullPointerException when passing empty coverage report #1232 #1231
  • Relative path causes NPE / do not use PathUtils.sanitize(filename) #1200 #1199
  • fix coverage caching #1198
  • CxxCoverageSensor not able to get the coverage property sonar.cxx.coverage.reportPath / fix coverage unit test #1189 #1156 #1010
  • Fixes syntax error in list initialization with template #1182
  • Fixes syntax error: std::nullptr_t in func args #1178
  • Fixes syntax error if template argument is casting pack expansion #1176
  • Trailing comma is not removed in complex macro with empty variadic arguments #1168 #1167
  • Ignore empty statement after generated code in TooManyStatementsPerLine #1164
  • Preserve generated status in concatenated strings #1163
  • Generated strings in macros results in DuplicatedLiterals false alarms / Fixes "Generated strings in macros results in DuplicatedLiterals false alarms #1150 #1147
  • broken compiler sensor unit tests / remove job prefix from file name in vc report #1125 #1123
  • undocumented API with linkageSpecification #1103 #1102
  • fix Clang-Tidy error #1088 #1076
  • AbstractCxxPublicApiVisitor: fix template declaration #1072 #1067
  • fix ClassComplexityCheck and NestedStatementsCheck #1065
  • Ignore generated nodes in nested statement check #1171
  • ensure the exit id is the rule id and not the template id in case of … #1071

Know Issues

For an up to date list of known issues see the issue tracker.

  • V0.9.8 is not compatible with Java 9
  • Starting with SQ 6.2 there are some new metrics and some are no more available. Please have a look to the SonarQube release notes.
  • Symlinks are not supported.

Thanks ....

go to all contributors (in alphabetical order):

@Bertk
@guwirth
@jmecosta
@Kochise
@gyorb
@nathanaelg
@gena01
@MarcAntoineCRUE
@Pasick
@stefanweiser

... and all people which were active on the issue tracker!

V0.9.7

16 Feb 11:28
Compare
Choose a tag to compare

We are pleased to announce the SonarQube C++ Community Plugin version 0.9.7.
See lists below for features added and bugs fixed in this release.

SonarQube compability

Enhancements

  • SQ 5.6 API support: #926, #828, #988
    • use latest highlighting API: #918, #919
    • forceZeroCoverage: better detection of executable lines: #1014
    • improved CPD algorithm with additional configuration settings sonar.cxx.cpd.ignoreLiterals and sonar.cxx.cpd.ignoreIdentifiers: #941, #953
    • remove detailed mode from test metrics (no more supported with SQ 5.6 API: sonar.cxx.xunit.provideDetails): #906, #911
    • remove computation of package/file tangle metrics (no more supported with SQ 5.6 API): #364
  • Improved report handling: there is a tolerant and a strict mode now. In tolerant mode analysis continue in case of errors in a report file. In strict mode an error in a report file will stop the analysis (sonar.cxx.errorRecoveryEnabled): #842, #959, #758, #985, #972, #971
  • CppCheck 1.75, 1.76, 1.77 support: #913, #963, #966, #970, #1020, #1011
  • improve C99 designated initializers: #925, #961
  • support for Visual Studio 64-bit integer-suffix: #904
  • support for Visual Studio throw(...) exception specification: #892
  • improved preprocessor number decoding #967
  • support of VS2017 RC log file parsing #997
  • improved commented code check, supports also //@ and /*@: #992
  • remove indentation check: #873
  • PC-Lint: support of MISRA C++ 2008 and MISRA C++ Rule messages: #917
  • improved AppVeyor MAVEN path handling: #950
  • run integration tests with latest SQ versions: #1013, #1012, #1002, #998, #977, #964, #942, #935, #934, #959

Bugfixes

  • coverage issues with SQ6.2 #999
  • Regression in org.sonar.cxx.visitors.AbstractCxxPublicApiVisitor #980
  • typedef enum not supported by public API visitor #974
  • cpd visitor: IllegalArgumentException: 208 is not a valid line offset for pointer #952
  • C++11 preprocessor syntax not supported #951
  • error handling raw string literals #944
  • violationsCount is always "0" #939
  • Travis build failing #932
  • Problem with alias declarations inside template class #928
  • typedef union not supported by public API visitor #921
  • figure out what to do with forceZeroCoverage feature that does not work anymore in batch side #909
  • sonar-cxx 0.9.6 : compatibility issue with google collection ? #898
  • Issues with undocumented API detetction #890
  • API Documentation on template function #886
  • SwitchLastCaseIsDefault rule regression for fallthrough before default case #884
  • DuplicatedIncludeCheck not working in V0.9.6 #879
  • CycleBetweenPackagesCheck not working in V0.9.6 #878
  • MethodNameCheck: ctor and dtor of class should not be checked #800
  • Indentation within namespace blocks (again) #689
  • The token column will get wrong when include file has macro #1003
  • Extract this magic number 'nullptr' into a constant, variable declaration or an enum. #986
  • typename not always parsed #989
  • API documentation on template function in template class #1000
  • Coverage fails with wrong number of lines #842
  • workaround for 'forceZeroCoverage' #1007
  • MethodNameCheck: ctor and dtor of class should not be checked #984
  • improve public API handling #976
  • improve public API typedef handling #969
  • fix SwitchLastCaseIsDefault #968
  • improve preprocessor number decoding #967
  • improve C99 designated initializers #961
  • replacing text macros (C++11 syntax) #960
  • Alias declaration in function is not public API #949
  • Refactor/highlighting #945
  • increment violationsCount #940
  • TooManyStatementsPerLineCheck: remove redundant expression #938
  • Remove redundant expression #937
  • Fix ^= (BW_XOR_ASSIGN) #1026
  • support nested template definitions #1029
  • support nested names in CLI attributes #1037
  • add Cppcheck rules which seems to be not part of errlist #1045
  • improve syntax error warnings in LOG file #1047
  • fix Visual Studio coverage #1048
  • handle CxxUnitTestResultsImportSensor exceptions #1052, #1050
  • add XPath check again #1033

Know Issues

For an up to date list of known issues see the issue tracker.

  • V0.9.7 is not compatible with Java 9
  • Starting with SQ 6.2 there are some new metrics and some are no more available. Please have a look to the SonarQube release notes.

Thanks ....

go to all contributors (in alphabetical order):

@Bertk
@dkt01
@guwirth
@jmecosta
@wichtounet

... and all people which were active on the issue tracker!

V0.9.6

23 Jun 21:40
Compare
Choose a tag to compare

We are pleased to announce the release of the SonarQube C++ Community Plugin version 0.9.6.
See lists below for features added and bugs fixed in this release.

SonarQube compability

Enhancements

  • use latest SQ 5.6 API and POM 32 (#887, #883, #881, #868)
  • end of Java 7 support (#823)
  • remove deprecated SQALE quality model, sonar.cxx.other.sqales (#858, #856)
  • support of new SonarQube Quality Model (#816, #720)
  • sonar-scanner V2.6 support (#845)
  • support of Dr Memory Analysis reports; sonar.cxx.drmemory.reportPath (#837)
  • upgrade to sonar-dotnet-tests-library v1.3.2: supporting sonar.cxx.vstest.reportsPaths, sonar.cxx.nunit.reportsPaths and sonar.cxx.xunit.reportsPaths (#841)
  • cache coverage data to improve performance (#822)
  • improved logging (#838, #821, #846)

Bugfixes

  • fix Eclipse build (#863, #851)
  • improve preprocessor #elif and #include handling (#860)
  • preprocessor fails to parse #include directive which has functional macros (#855)
  • Microsoft specific handling of variadic macros not supported (#853, #843)
  • CxxCompilerSensor: Fix check for valid input handling (#826)

Know Issues

For an up to date list of known issues see the issue tracker.

  • V0.9.6 is not compatible with SQ 6.0, SQ 6.1, ...
  • V0.9.6 is not compatible with Java 9

Thanks ....

go to all contributors (in alphabetical order):

@arnaudsylvestre
@Bertk
@BobSilent
@guwirth
@jmecosta

... and all people which were active on the issue tracker!

V0.9.5

26 Mar 13:04
Compare
Choose a tag to compare

We are pleased to announce the release of the SonarQube C++ Community Plugin version 0.9.5.
See lists below for features added and bugs fixed in this release.

SonarQube compability

Enhancements

  • command line tool for standalone analysis cxxlint #791
  • allow custom checks in external plugins #667. #527
  • improved multi module support #695
  • improved report path handling: can be relative or absolute inside or outside rootDir now #683, #425
  • parser enhancements:
    • grammar refactoring: improved C++14 and C++17 support #743
    • support cudaKernel grammar #727
  • metrics enhancements:
    • undocumented public API detection: documentation for methods marked with "override" is optional now #810
    • add metric COMPLEXITY_IN_CLASSES and COMPLEXITY_IN_FUNCTIONS #788
  • checks enhancements:
    • FileHeaderCheck: with regex support #807
    • TooManyLinesOfCodeInFunctionCheck: improved LOC counting #807
    • new checks: LinesOfCodeInFunctionCheck and FunctionParameterCountCheck #790
    • add tags to all checks #783
  • rule enhancements:
    • rats: add missing rules strncat/sscanf #811
    • CppCheck 1.72 support #754
    • CppCheck 1.73 support #797
    • remove CompileIncludePathNotFoundOrInvalide rule #698
    • update VS and CppCheck rules, tags and URLs #726
  • unit test enhancements:
    • NUnit support:sonar.cxx.nunit.reportsPaths #742
    • MSTest support:sonar.cxx.vstest.reportsPaths #742
  • VC build log parser:
    • handle build log files from parallel builds #776
    • improve build log parser #744
    • suppport x64 in x86 machines #686, #685
  • integration tests:
  • other:
    • support environment variables and system properties in configuration files #716, #741
    • support comma separated list for reports in config file #730

Bugfixes

  • update urls in pom.xml, wiki and plugin (SonarOpenCommunity) #674
  • handle relative report paths with backticks outside basedir. #780
  • naming convention for functions should ignore name of class (#795)
  • Cannot find reports with relative Ant globbing (#775, #777)
  • NullPointerException looking for CppCheck report (#766)
  • Why didn't find the checks for naming convention in sonar-cxx-plugin-0.9.4.jar (#762)
  • Valgrind parsing error (#759, #799)
  • alias template can only be inline documented (#736)
  • SQ-5.2 background task: java.lang.IllegalArgumentException: Rule 'cxx:CycleBetweenPackages' (#734)
  • Parsing issues: template-parameter / std::enable_if<...>::type (#733)
  • expression parser errors (#728)
  • Fix integration tests for SQ 5.2/5.3+ (#721)
  • CxxVCppBuildLogParser does not detect absolute path (#711)
  • parser error during marco resolving (#705)
  • Travis build for Java 7 failing (#700)
  • Preprocessor #if code incorrect (#678, #692)
  • Failure to parse Botan header file Botan/build/include/botan/buf_comp.h (#673)
  • Update Center links are incorrect (#670)
  • variadic macros - no argument for ellipsis creates preprocessor parser (#605)
  • C++ grammar refactoring (#593, #743)
  • improve FunctionNameCheck and MethodNameCheck (#798)
  • fix href for Get-test-execution-metrics (#765)
  • activate naming checks (#763)
  • correct search order of dirs specified via 'sonar.cxx.includeDirectories' (#748)
  • try to fix broken Travis build for Java 7 (#746)
  • Add documentation node searching for template alias declaration (#739)
  • Reintroduce typeid keyword (#737)
  • fix rule CycleBetweenPackages Sqale remediation parameters (#735)
  • fix macro parameter replacement (#709, #708)
  • add sonar log file content to Travis log after failure (#702)
  • variadic macros: no argument for ellipsis creates preprocessor parser error (#701)
  • improved multi module support (#695)
  • remove final and override from keyword list (#675)

Know Issues

For an up to date list of known issues see the issue tracker

Thanks ....

go to all contributors (in alphabetical order):

@Bertk
@felipebz
@guwirth
@jmecosta
@lcintrat
@mjdetullio
@selltc
@wichtounet

... and all people which were active on the issue tracker!

v0.9.4

25 Oct 14:12
Compare
Choose a tag to compare

We are pleased to announce the release of the SonarQube C++ Community Plugin version 0.9.4.
See lists below for features added and bugs fixed in this release.

SonarQube compability

Enhancements

  • parser enhancements:
    • add C++/CLI support (#539)
    • complete C++11 and C++14 support (#507,#508, #556, #554, #560, #561, #562, #563, #564, #565, #566, #567, #568, #569, #570)
      • C++11: user defined literals (#564, #590)
      • C++11: raw string literale (#563, #580)
      • C++11: variadic template (#562, #589)
      • C++11: long long & trailing return type (#561)
      • C++11: attributes (#560)
      • C++14: standard user defined literals (#570)
      • C++14: lambda capture expressions (#569)
      • C++14: generic lambda (#568)
      • C++14: digit separators (#567)
      • C++14: binary literals (#566)
      • C++14: attribute deprecated with user defined message (#565, #571)
      • C++14: support lambda capture expressions (#574, #569, #568)
      • C++14: support binary literals (#572)
      • C++14: add digit separator support (#591)
      • add C++11/C++14 tests (#532)
  • metrics enhancements:
    • public API documentation metric: supports defaulted and deleted functions now (#558, #584)
  • rule enhancements:
    • CppCheck 1.70 support (#623, #627)
    • Visual Studio 2015 compiler warning support (#622, #626)
    • add tags to CXX rules (#636, #637)
    • NestedStatementsCheck: add new check for nesting level (#517)
    • additional checks for naming convention (#541)
      • FileNameCheck: file name check support (#456)
      • MethodNameCheck: method name check support (#455)
      • FunctionNameCheck: function name check support (#454)
      • ClassNameCheck: class name check support (#453)
    • ClassComplexityCheck: class complexity check support (#452, #541)
    • MagicNumberCheck : constexpr support (#606, #607)
    • TabCharacterCheck: add switch to report issues per line (#390, #553)
    • MagicNumberCheck: support unsigned values (#542)
    • FileRegularExpressionCheck/LineRegularExpression: add flags to negate search results (#534, #536)
  • coverage enhancements:
    • forceZeroCoverage: Depends on which key (sonar.cxx.coverage.reportPath, sonar.cxx.coverage.itReportPath, sonar.cxx.coverage.overallReportPath) is defined in the sonar-project.properties file now. (#633, #634)
  • integration tests:
    • added AppVeyour CI for Windows build (#651)
    • improved integration tests (#538, #658)
    • added SQ 5.2 to Travis build (#648, #649)
    • use Boost 1.55 for integration test (old was 1.46) (#555)
  • other:
    • improved VC++ build log parser (#501, #537)
    • support team builds now (#619)
    • update deprecated APIs and components (#647, #632, #629, #631, #642)
    • source code highlighting updated (#645, #644)
    • SQALE support for 'other' rules: sonar.cxx.other.sqales (#467, #529)
    • default values for reportPath values removed to get meaningful error messages (#331, #550)

Bugfixes

  • TooManyStatementsPerLineCheck creates false positive with type alias(#656, #659)
  • Execute decorators failing(#625, #631)
  • ERROR - path normalizing of... (#618)
  • PC-lint report may create SonarException in decorator (#600, #631)
  • parser error if identifier is also a token (CxxKeyword) (#586)
  • Type alias (using =) does not generate public API documentation violation (#577)
  • Public API documentaton violation generated for friend declaration (#576)
  • Non-type template parameters (#573)
  • ReservedNamesCheck exception #define _ ... (#543)
  • AST parser error - namespace alias '::TimerBase' (#526)
  • AST parser error 'auto Timer::writeTimeToLogFile() -> void {}' (#525)
  • AST parser error 'for (const std::string &i : v)' (#511)
  • AST parser does not support function trailing return type (#510)
  • preprocessor fails to extract filename from macro (#500)
  • Problem with Travis (#494)
  • Indentation Check with Namespace (#441)
  • Error with includes (#437)
  • Relative paths in Cobertura reports are treated relative to the current directory instead of the projectBaseDir (#426)
  • fix typos in pc-lint rules (#513)
  • Fix cpplint's NOLINT() with new rule names (#635)
  • Fix NOLINT(*) regression (#655)
  • fix normalizePathFull (#620)
  • Treat relative paths in Cobertura reports as relative to the project … (#613)
  • limit report line number (#611, #631)
  • stringinize with string prefix (#603)
  • Support C++/CLI typeid (#596, #582)
  • Handle expressions in non-type template parameters, fix (#573)
  • non-type template parameters fix (#592)
  • binary literals have no suffix (#588)
  • fix for trailing return types (#587)
  • Support for friend declaration API documentation (#583)
  • Generate public API documentation violation for alias declaration (#581)
  • Fixing with define _ (#544)
  • enhance handling of trailing return type (#528)
  • fix for range-based for loop (C++11) (#523)
  • fix up sqale (#521)
  • fix sqale definitions (#518)
  • Add fallback for 'reactor' report search in CxxCoverageSensor (#516)
  • fix typos in pc-lint rules (#513)
  • Improve namespace indentation check (#506)
  • Fix hashhash related parsing problem (#459)
  • sonar-cxx 0.9.3 doesn't show technical debt (issues) with sonar 4.5.x (#519)
  • permission denied on reports (#267, #550)

Know Issues

SonarQube 5.2 is only partially supported: next version will have full SQ 5.2 support.
For an up to date list of known issues see the issue tracker

Thanks ....

go to all contributors (in alphabetical order):

@ametselaar
@Bertk
@cbagwell
@guwirth
@jmecosta
@lcintrat
@Zetten

... and all people which were active on the Issue Tracker!

v0.9.3

22 Oct 16:42
Compare
Choose a tag to compare

We are pleased to announce the release of the SonarQube C++ Community Plugin version 0.9.3.
See lists below for features added and bugs fixed in this release.

SonarQube compability

Enhancements

  • SonarQube 4.5.2 API support (#357, #435, #395)
  • Multi-module support (#367, #358, #473, #278)
  • Visual Studio build log parser for automatic creation of configuration
    (macros and include directories) (#398, #399)
  • preprocessor enhancements:
    • Improved token rescanning during preprocessing (#442)
  • parser enhancements:
    • Improved C++11 support (#49)
    • Add header file to mock gcc specific extensions (#446)
  • rule enhancements:
    • PC-Lint: additional rules supported (#411)
    • Cppcheck: Support of V1.69 rules (#502, #503)
    • Cppcheck: Support 'inconclusive' issues (#247, #429)
    • New BooleanEqualityComparisonCheck (#392)
  • unit test enhancements:
    • Boost Unit Test: new XSLT supporting 'simple' and 'detailed' mode
      (sonar.cxx.xunit.provideDetails) (#428)
    • Support MSTest summary report files: add MS test results from trx file to SQ (#388)
  • coverage enhancements:
    • Coverage setting 'forceZeroCoverage' supports integration and overall coverage now (#434, #408)
  • other:
    • Improved integration tests: Boost Test, GoogleTest, Bullseye, multi-module, more SQ versions (#375, #352, #387, #462)
    • Improved report path location logging (#256, #433)

Bugfixes

  • [Parser Error ] "::" expected but ">>" [BW_RSHIFT] found bug solution available (#49)
  • Preprocessor failure evaluating BOOST_WORKAROUND bug solution available (#226)
  • Boost Unit Test, xunit.provideDetails=true, AST-based lookup bug solution available (#368)
  • Boost Unit Test, xunit.provideDetails=true, filename tag bug solution available (#372)
  • Some rarely used forms of the switch-statement cannot be parsed bug solution available (#381)
  • C++ Community / (2) Codananalysis / Add Value bug wontfix (#383)
  • CxxCoverageSensorTest.shouldReportCoverageWhenVisualStudioCase broken on windows bug (#393)
  • No error message if sonar.cxx.xunit.xsltURL file does not exist bug (#396)
  • xunit: nested (qualified) classname bug solution available (#401)
  • Private function definitions are counted as public API bug solution available (#402, #403)
  • The dependency analyzer extends projects scope by pulling the dependencies into it bug solution available (#405)
  • An argument called "final" generates a parsing error bug (#410)
  • Missing sensor rule stops analysis bug (#412)
  • NullPointerException when analyzing source file bug solution available (#418)
  • Analysis takes 15+ hours to complete bug (#424)
  • Relative paths in Cobertura reports are treated relative to the current directory instead of the projectBaseDir bug solution available (#426)
  • cxx:UseFileHeader How to use? bug solution available (#440)
  • False positive in "Statements should be on separate lines" bug solution available (#445)
  • Name of rule [repository=cxx, key=MissingInclude] is empty bug solution available (#460)
  • parser error with const reference to std::string bug waiting for answer (#477)
  • PC-Lint import stops with Exception bug solution available (#488)
  • CppCheck sensor shall support project findings bug solution available (#491)
  • Remove deprecated metric COMMENT_BLANK_LINES (#423, #395)

Know Issues

Thanks ....

go to all contributors (in alphabetical order):

@ametselaar
@Bertk
@guwirth
@jmecosta
@lcintrat
@Typz
@wenns

... and all people which were active on the Issue Tracker!