Helix QAC QA·CLI Changes in 2024.4
New Bazel synchronization method
- Command:
qacli sync ‑t BAZEL
- Old Behavior: Not available.
- New Behavior: The new BAZEL sync method allows users to analyze projects built with a local Bazel build system. External dependencies are excluded by default but can be included by setting
HELIX_QAC_BAZEL_INCLUDE_DEPENDENCIES
.
XML indenting option has changed
- Command:
qacli view ‑m XML ‑‑xml‑indent
- Old Behavior: Indent changes were done using the
‑‑xml‑indent
option. - New Behavior: The
‑‑xml‑indent
option has been deprecated and will be removed in a future release. You should now use the‑‑indent
option.
New SARIF indenting option
- Command:
qacli view ‑m JSON ‑‑indent
- Old Behavior: Indent changes were not possible.
- New Behavior: Sets the number of spaces or tabs that will be output for each level of indentation. Positive numbers indicate spaces, negative numbers indicate tabs. The default is 0.
New %I format specifier to output all Rule Ids
- Command:
qacli view ‑‑format "%I" | ‑‑xml‑format "%I"
- Old Behavior: Not available.
- New Behavior: When this specifier is used all Rule Ids in the hierarchy are output. For textual output individual Rule Ids within a rule are '|' (bar) separated, Fields for each rule are ',' (comma) separated. For XML, individual Rule Ids use the tag
<SingleRuleId>
with each rule in a<RuleIds>
tag. For example:
<RuleIds>
<SingleRuleId>M3CM-3</SingleRuleId>
<SingleRuleId>M3CM-3_1</SingleRuleId>
<SingleRuleId>Rule-2.3</SingleRuleId>
</RuleIds>
<RuleIds>
<SingleRuleId>M3CM-3</SingleRuleId>
<SingleRuleId>M3CM-3_1</SingleRuleId>
<SingleRuleId>Rule-2.8</SingleRuleId>
</RuleIds>
In text format:
qacli view %M and %G now always displays parent rule ID
- Command:
qacli view ‑‑format "%M %G% | ‑‑xml‑format "%M %G"
- Old Behavior: If there was just a single rule in the rule hierarchy, as opposed to the more common 3 levels of rules, then these specifiers would not return the parent rule ID.
- New Behavior: The parent rule ID will now always be shown, regardless of the number of rules in the hierarchy.
User message editing using 'qacli project config‑file ‑‑edit'
- Command:
qacli project config‑file ‑‑edit user‑messages
- Old Behavior: Not available.
- New Behavior: You can now edit the user message file.
Consistent handling of ‑‑qaf‑project | ‑P in 'qacli project' commands
- Command:
qacli project
- Old Behavior: Various
qacli project
sub-commands had different default values for‑‑qaf‑project | ‑P
- New Behavior:
‑‑qaf‑project | ‑P
is now mandatory and has no default value.
Using deprecated qacli commands now triggers a warning
- Command:
qacli
- Old Behavior: Not available.
- New Behavior: By default,
qacli
will output a message to stderr warning you are using a deprecatedqacli
command. Where possible, a suggested replacement command will be given. For example:
*** Warning - The option (--qaf-project-config) has been DEPRECATED and will be removed in a future release. ***
Consider switching to 'qacli project create'
To disable these messages set the environment variable HELIX_QAC_DISABLE_DEPRECATED
to any value.
You can force deprecated qacli commands to fail
- Command:
qacli
- Old Behavior: Not available.
- New Behavior: By default,
qacli
will output a message to stderr warning you are using a deprecatedqacli
command - but it will complete as normal.qacli
can be forced to fail (return code 1, Command Line Parse Failure) when it encounters a deprecated command by setting the environment variableHELIX_QAC_FAIL_DEPRECATED
to any value. For example:
Implicitly supported compilers are now mentioned in the output
- Command:
qacli help ‑a
- Old Behavior: Implicitly supported compilers, such as cctc, were not mentioned in the output.
- New Behavior: Implicitly supported compilers are mentioned in the output