Skip to content

Latest commit

 

History

History
32 lines (24 loc) · 1.82 KB

metadata.adoc

File metadata and controls

32 lines (24 loc) · 1.82 KB

Rule Metadata

This document describes how metadata.json should be structured.

quickfix field

Every active rule that is not a security hotspot must specify the availability of a quick fix for its issues. metadata.json must feature a quickfix field with one of the following values:

  • unknown: the feasibility of producing a quick fix is not evaluated.

  • infeasible: it is not feasible to propose a quick fix for any of the issues, for whatever reason.

  • targeted: it is possible to implement quick fixes for this rule, but none are implemented right now.

  • partial: some of the issues produced by the rule propose a quick fix, but not all.

  • covered: all the issues produced by the rule propose a quick fix.

ℹ️

A covered rule is still not guaranteed to provide a quick fix for a particular issue (for instance, if a fix location would be inside a macro expansion or in a different file from the issue location). The rule is said to have a partial quick fix only if there exists a family of issues that cannot have a quick fix.

For instance, on one hand, if a rule detects two functions that are dangerous to use, A and B, and A has an obvious replacement (and therefore a quick fix) while B does not, the field should be set to partial.

On the other hand, if a quick fix could be easily proposed for both A and B, but the fix location might be inside a macro expansion, or in a different file from the issue location (and hence not feasible given the current SonarLint capabilities), this should not prevent the rule from being tagged as covered.

💡

You can update the quickfix field using this GitHub Workflow: https://github.com/SonarSource/rspec/actions/workflows/update_quickfix_status.yml