-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define tool component object to represent tool driver and its extensions/plugins #179
Comments
Proposal (copied from #207): Probably the |
See #258. As part of completing this analysis, we should be sure to cover the issue of how individual plug-ins both provide rules/resources data and allow for probing for localized information. |
New proposal: provide a tool property that represents a set of file indices to plug-ins. Add a version property to the file object. Now, a tool can reference all its plug-ins. The file information can contain hash and version details to idenify it. Add an optional property to the rule metadata that refers to its container plug-in (by file index). Consider whether we require a new file 'role' to document this case. |
Remove
|
@lgolding, one thing to keep in mind here is that we've moved rules metadata to the tool object. if this data is now part of tool component, then a result ruleIndex needs to know what component it is associated with. this implies a toolComponentIndex on each result (that can't point away from the driver into some specific plug-in or component). The absence of this property would indicate that the driver component rulesMetadata s/be examined to retrieve rule data. |
@michaelcfanning I agree with your idea for |
Schema changes: Tool.language retained. |
Checked into SARIF SDK schema. |
conversion.tool is the conversion scenario analog of run.tool. Both the direct production and the conversion scenarios are accomplished by a tool that consists of a driver, and possibly a set of auxiliary files including plugins and configuration files. In the conversion scenario, configuration files are more likely than plugins, but that’s neither here nor there.
Please note update to this issue, result.extensionIndex should be named result.ruleExtensionIndex (to provide parallelization with result.ruleIndex...) |
EBALLOT PROPOSAL: define a mechanism to allow a tool to explicitly detail any plug-ins or extensions that were in play during the analysis run (and which potentially contribute to changes in analysis behavior). API IMPACT
NOTES
POST-BALLOT NOTE
|
E-BALLOT #2 PROPOSALWe decompose a This ballot proposal incorporates the later changes introduced by #336 ("Changes to toolComponent properties"). SCHEMA CHANGES
NOTES
|
Neglected to close this after e-ballot-2. |
This updates the SARIF exporter to produce SARIF 2.1 output. The bulk of the diffs come from two changes to SARIF: * oasis-tcs/sarif-spec#309 * oasis-tcs/sarif-spec#179 Differential Revision: https://reviews.llvm.org/D65211 llvm-svn: 370068
This updates the SARIF exporter to produce SARIF 2.1 output. The bulk of the diffs come from two changes to SARIF: * oasis-tcs/sarif-spec#309 * oasis-tcs/sarif-spec#179 Differential Revision: https://reviews.llvm.org/D65211 git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@370068 91177308-0d34-0410-b5e6-96231b3b80d8
In order to effectively compare two equivalent tool runs expressed as SARIF, it is useful to verify whether the log files were produced by tool configuration with equivalent functional behaviors.
The tool version provides some help here. The tool invocation data also provides some assistance, in cases where things like the command-line arguments are exactly equivalent.
Tools can be parameterized by things referred to on the command-line (such as scripts that drive analysis, or plug-ins that are delay-loaded). These things can be versioned out-of-sync with the tool.
Additionally, some tools discover plug-ins at runtime, from well-known locations (that aren't explicit on a command-line).
It is difficult or impossible to specify SARIF that can accommodate the range of tool behaviors. But have we done enough on the problem of handling rule scripts/plug-ins versioning that is typical of tools such as Semmle? Fortify also has flexible rules customization/authoring. et al.
The text was updated successfully, but these errors were encountered: