Releases: SonarOpenCommunity/sonar-cxx
V1.2.0
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
- tested and released for SonarQube 6.7 LTS, 7.0, 7.1, 7.2, 7.3, 7.4
see also SonarQube compatibility matrix - Installation Instructions
- Upgrade Instructions
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
- use
- BREAKING CHANGE :
- 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.
- Setting
- 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
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
- tested and released for SonarQube 6.7 LTS, 7.0, 7.1, 7.2
see also SonarQube compatibility matrix - Installation Instructions
- Upgrade Instructions
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 complexsonar.cxx.funcsize.threshold
/ Function size threshold:
Function size threshold to consider a function to be too big
- new metrics:
- 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
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
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
- tested and released for SonarQube 6.7 LTS, 7.0, 7.1
see also SonarQube compatibility matrix - Installation Instructions
- Upgrade Instructions
Enhancements
- minimal supported SQ API is 6.7 #1317
- updated parent POM to 44
- set an unique name to distinguish between community and commercial plugin in UI: C++ (Community) #1433
- optimize Sensor usage with SensorDescriptor #1421 #1434 #1420
- implement support for multiple locations in CxxReportSensor #1447
- Cppcheck 1.83 support #1455 #1450
- Cppcheck support external library issues #1445
- CppcheckParserV2: allow multiple issue locations #1436
- Visual Studio 2017 15.6 & 15.7 support #1454 #1453 #1399
- CxxValgrindSensor: allow multiple nodes #1440 #1461 #1440
- RATS 2.4 support #1419 #1395
- remove
scanOnlySpecifiedSources
#1476 - travis.yml: execute automatic HTML checks for rules files #1467 #1456
- fix quality flaws #1448 #1473 #1471 #1470 #1469 #1464 #1461 #1452 #1441 #1432 #1426 #1414 #1408
- test with new SQ versions #1462 #1459 #1430 #1428 #1417 #1413
- test with sonar-scanner-cli-3.1.0.1141 #1460
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):
... and all people which were active on the issue tracker!
V0.9.9
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
- tested and released for SonarQube 6.7 LTS
see also SonarQube compatibility matrix - Installation Instructions
- Upgrade Instructions
Enhancements
- minimal supported SQ API is 6.7 #1317
- 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: remove
- 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):
... and all people which were active on the issue tracker!
V0.9.8
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
- tested and released for SonarQube 5.6 LTS, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7 LTS
see also SonarQube compatibility matrix - Installation Instructions
- Upgrade Instructions
Enhancements
- Clang Static Analyzer support v5.0.0 (plist reports)
sonar.cxx.clangsa.reportPath
#547 #1161 #1254 #1172 - Clang Tidy support
sonar.cxx.clangtidy.reportPath
#1213 #1076 #1089 #1095 #1240 - Cognitive Complexity support #1006 #1245 #1271
- recursion is not handled
- own C plugin (experimental) #1100 #1099
- read Upgrade Instructions
- JSON Compilation Database support (experimental) #1175 #993
- CxxOtherSensor: add an XSLT pre-analyse step #1096
sonar.cxx.other.N.inputs
,sonar.cxx.other.N.outputs
,sonar.cxx.other.N.stylesheet
(N=1...9)
- Visual Studio 2017 warnings support #1091 #1239 #1113
- Visual Studio 2017 Core Guideline Checker warnings support #1090
- GCC/G++ V6.3 warnings support #1173 #1188
- Cppcheck 1.78, 1.79, 1.80, 1.81 warnings support #1092 #1133 #1201 #1244 #1129 #1134 #1202 #1246
- improved Bullseye coverage support (file format 5) #1210
- support of cxx-lint custom rules #1068
- PCLint MISRA C 2012 support added #1162
- executable_lines metric support (SQ 6.2+) #1010 #1203 #1206
- display measures per input file #1030 #1241
- C++17 support #1104 #1228 #1130
- static_assert #1226 #1227
- new attributes fallthrough, nodiscard, maybe_unused #1146 #1204
- __has_include #1145 #1224
- lambda capture of *this #1144 #1211
- constexpr lambdas #1143 #1211
- class template argument deduction #1142 #1222
- non-type template parameters with auto #1141 #1212
- fold expressions #1140 #1223
- hexadecimal floating point literals #1139 #1217
- u8 character literal #1138 #1209
- nested namespaces #1086 #1136
- inline variable #1085 #1132
- constexpr if #1084
- init in if, switch #1083
- structured bindings #1082 #1137
- update to SSLR 1.22 #1158 #1169
- update to parent 40 #1064
- sslr-cxx-toolkit: add more configuration parameter #1260
- AppVeyor
- add technical debt analysis of master branch #1258 #1111
- publish results in SonarCloud #1252
- Travis
- fix technical debt quality flaws #1269 #1075 #1121 #1122 #1126 #1128 #1148 #1153 #1179 #1238 #1255 #1263 #1265 #1114
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
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
- tested and released for SonarQube 5.6.x, 6.0, 6.1, 6.2
see also SonarQube compatibility matrix - Installation Instructions
- Upgrade Instructions
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
andsonar.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
andMISRA 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
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
- tested and released for SonarQube 5.6.x only
see also SonarQube compatibility matrix - Upgrade Instructions
- Installation Instructions
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
andsonar.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
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
- tested and released for SonarQube 4.5.2+, 5.0.x, 5.1.x, 5.3.x, 5.4.x and 5.5.x,
see also SonarQube compatibility matrix - Upgrade Instructions
- Installation Instructions
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:
- metrics enhancements:
- checks enhancements:
- rule enhancements:
- unit test enhancements:
- VC build log parser:
- integration tests:
- other:
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
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
- tested and released for SonarQube 4.5.2+, 5.0.x and 5.1.x,
see also SonarQube compatibility matrix - Upgrade Instructions
- Installation Instructions
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:
- 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)
- 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:
- integration tests:
- 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
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
- tested and released for SonarQube 4.5.2+, 5.0.x and 5.1.x,
see also SonarQube compatibility matrix - Upgrade Instructions
- Installation Instructions
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:
- rule enhancements:
- unit test enhancements:
- coverage enhancements:
- other:
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
- for an up to date list of known issues see the issue tracker
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!