objectscriptQuality 3.2.0

SonarQube compatibility

8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.9 (LTS), 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.7 (LTS), 6.6, 6.5

IRIS compatibility

2020.1, 2019.1, 2018.1

Ensemble compatibility

2018.1, 2017.2, 2017.1, 2016.2, 2016.1, 2015.2, 2015.1, 2014.1

Caché compatibility

2018.1, 2017.2, 2017.1, 2016.2, 2016.1, 2015.2, 2015.1, 2014.1

Java compatibility

Oracle JDK 11, Oracle JDK 8

Release notes

Since version 3.0.0 we have renamed our product to fit better the target language analyzed: ObjectScript. We have also renamed all the related products like objectscriptQuality for Caché Studio, objectscriptQuality for Aterlier and objectscriptQuality for VSCode.

Since version 3.2.0 we have removed support for SonarQube previous to version 6.5.

What's new

  • Added compatibility with SonarQube 8.3 and higher
  • Recognition of default database libraries deployed by Intersystems
  • Internal architecture improvements and updates
  • New API to create custom rules
  • Recognize ServerOnly on Relationship modifiers
  • Accept IRIS naming for non-direct use variables: r%Property and m%Property
  • Accept undocumented and deprecated $ZOBJNEXT for legacy code
  • Accept class type in INDEX property list definition
  • Ignore comments in SQL queries
  • Support for ObjectScript Package Manager Client - ZPM, analyzing only packages and files defined on the module.xml of the project
  • Support for ObjectScript functions:
  • Improvements on Class not declared abstract rule to avoid false positives:
    • Manage autogenerated functions on abstract classes

Fixes

  • $LU is a short for $LISTUPDATE
  • Fixes on parsing index definition
  • Fix type recognition on Incompatible argument type in a method rule
  • Fix on Class not declared abstract rule when class uses autogenerated methods
  • CompileAfter modifier assignment can be empty
  • Correct parsing of pattern match operator (?)
  • Solves type recognition on variable declaration when assignment is done using a function
  • Avoid checks when using an implementation language different than ObjectScript
  • Recognize parameters in labels
  • Recognize multiline expressions with comments
  • Recognize <?xml version="1.0"?> in XData
  • Recognize argument for Job command:
    job @command
  • Recognize the position parameter expressions using * (asterisk) and *-n (an asterisk followed by a negative integer) on $LISTGET
  • Allow usage of quotation marks on INDEX name
  • On extent index, the "On property_expression_list" is optional
  • Keywords ELEMENTS and KEYS must be parsed case insensitive on arrays
  • Review of SqlFieldName modifier for Relationship
  • Review on rule Quit whitout arguments to avoid false positive when using labels in methods