-
Notifications
You must be signed in to change notification settings - Fork 25
Description
Proposal
Add a new way of running clippy-sarif, that runs clippy underneath to capture clippy output and exit status.
Motivation
In CI systems it is frequently used to break pipelines for certain checks. clippy is one of those tools you want to break builds upon unsuccessful runs.
When running cargo clippy --message-format=json | clippy-sarif --output myfile.sarif on Windows CI/CD system like ADO Pipelines or GH, if clippy itself does exit with error status, it is not propagated by the pipe | and then clippy-sarif run makes the step or task to actually be marked as successful.
It would help to make somehow clippy-sarif to detect clippy exit code, to propagate it to the caller.
Benefits
Running clippy by clippy-sarif has the following benefits:
- Capture
clippyexit code and propagate. - Improved capture of output from
clippy(can fork it to screen at the same time). - Control on
clippyoutput by providing the--message-format=jsonargument.
Considerations
This "new" mode of running clippy-sarif can be made compatible with the existing one that uses standard output.
It is possible to completely remove the previous mode and replace with this new one, if there is a wish to only keep one mode.
Another option is to allow clippy-sarif to have an --input argument consuming data from a .json file output by clippy. Example:
cargo clippy --message-format=json | tee clippy.json
clippy-sarif --input clippy.json --output clippy.sarif