Version 2.5.0
Minor release in terms of changes to your analysis results, but a major milestone for the project: the ANTLR2 dependency is now gone, and replaced with ANTLR4. ANTLR is the software component which handles ABL code parsing, i.e. transform any ABL source code into something which can be browsed, from which detailed information can be extracted, and where it's possible to execute rules.
Proparse has been written years ago in ANTLR version 2, which is not maintained anymore, and thus being a problem for the long-term maintenance of CABL. It was then decided to migrate the grammar (and all associated code) to ANTRL version 4, in order to use the latest features from language recognition, and to be able to correctly manage the codebase on the long term. Apart from direct improvement in the sonar-openedge plugin, ANTLR4 allows grammar generation in different languages (C#, Python, JavaScript, Go, ...), so it will be possible to use the parser in any external tool in almost any language. The only part which has to be adapted is the lexer.
Although the new parser was heavily tested, we'd recommend the following update process:
- Back up the SonarQube database
- Upgrade the OE plugin (and rules) to the latest version
- Trigger a full analysis of your project under another key (
sonar.projectKey
property) - Roll back to the previous version if you have (lots of) new parse errors or if the total number of issues is completely different.