-
Notifications
You must be signed in to change notification settings - Fork 144
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
feat: introduce problem severity levels #966
base: main
Are you sure you want to change the base?
Conversation
9cef155
to
b102278
Compare
Ok so I noticed that we have a
So I am wondering if we should do one of the following:
WDYT? I can see the benefit of adding a @GregFurmanek WDYT? |
Consider also the following: It may make more sense to make the |
I don't think we want to give individual API teams (not PAs, but individual APIs within a PA) the ability to downgrade a linter warning. If they are exempt they can disable the rule in the proto with a comment or in their config. But the rule author should decide how serious a linter warning is IMO. Also, I'd be worried about config bloat/complexity. These configs should be dead simple to look at and interpret. We should keep a severity style attribute on the lint.Problem. |
I agree with Noah. Linter is an automated test tool of sorts. Tests are pretty dimple in their function and answer one question: does the code pass specific scenario. The concept of severity is more useful in error reporting. Not so much in testing. |
I might not have been clear above, but, I don't disagree with adding a severity-style field to lint.Problem that we can use in Tricorder to indicate if the finding is Blocking or not. I just believe it should be a property of lint.Problem, and not in the lint.Config, because the author of the rule should decide if the finding is blocking or not. |
Another way of seeing it is that the severity is a governance aspect which is usually ruled by organization. In that case, linter operator (i.e. a (sub-)org) should decide. |
Issues with API definitions might be of different criticality. Some issues are of informative character and some are very critical.
To differentiate we can introduce problem
severity
field. It can be used to, for example, decide whether a violation should be blocking (not allowed) or not (informative).