Releases: SonarOpenCommunity/sonar-cxx
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.ignoreLiteralsandsonar.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++ 2008andMISRA C++ Rulemessages: #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.reportsPathsandsonar.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!
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!
v0.9.1
We are pleased to announce the release of the SonarQube C++ Community Plugin version 0.9.1.
See lists below for features added and bugs fixed in this release.
Features / Enhancements:
- Compatible and tested with SonarQube 3.7 to 4.2
- Multi language support #130
- Support case-insensitive file systems in all sensors #155
- A set of builtin-checks like searching for ToDo, FixMe, NoSonar etc #96 #190 #167 #161 #157 #152 #151
- Use SSLR V1.19.2 and sslr-squide-bridge V2.3 #91
- Support of SonarQube 4.2 #180 #176 #181 #187 #198 #127
- Parse error recovery #133
- Force inclusion of a header file #85
- Improved PC-Lint support #93
- Additional SQALE definitions #105 #94 #62
- Support of Visual Studio Code Coverage reports. #186
- Attributted ATL support #174
- Improve the code colorizer #172
- Add support for Cppcheck 1.63 #166
- Add support for Cppcheck 1.64 #165
- Add support for Cppcheck's XML reports version 2 #158
- Support GCC's statement expression. #144
- Add support for feeding GCC's build warnings. #143
- Support GCC's conditionals with omitted operands. #138
- Support variadic macros. #137
- Support for multi-module configurations #46
Bugfixes:
- Do expand the macro arguments before expanding the macro body #194
- Parse failure for c++11 for range loops #115
- Prevent feeding of duplicated violations #110
- PC-lint violations filename or line = "0" cannot be fed #81
- Violations for files in project root folder cannot be fed #102
- PC-lint improvements for messages without filename or line = "0" #81
- Improper whitespace handling when hashhash'ing functionlike macro arguments #58
Thanks ....
go to all contributors:
@guwirth
@jmecosta
@Bertk
@Typz
@zjg
... and all people which were active on the Issue Tracker!
v0.9
Features / Enhancements:
- Provide an AST using SSLR #59
- Remap PC-lint MISRA violations into unique sonar rules #76
- Improve association of sources to the test #75
- Support for Intel Inspector via 'external rules'-mechanism #74
- Add rules for CppCheck V1.58, V1.59 and V1.60 # 73
- C++ Community Plugin not generating number of classes #70
- Provide support for VC compiler warnings (C4001-C6535) #69
- Replace cppncss with another tool (CCCC, CLOC) #67
- Rule: C++ parsing error #61
- Rule: custom/codebase specific checks via an XPath expression #60
Bugfixes:
- C++ Community Plugin silently ignores unknown files in gcovr reports #72
- Duplication detection doesnt work for source files which use line continuations #71
- Analysis fails when additional tools sensor through exception (RATS, Vera++) #68
- C++ Community Plugin mishandles file suffixes #66
- Error when processing coverage reports containing a big number of hits #65
- Crash with java.lang.IllegalArgumentException when analysing project #64
- The report processing should be more stable / error tolerant #63