google / google/error-prone

Collecting ideas for a new set of configuration options

Open
#648 29 comments 0 reactions 0 assignees View on GitHub
help wanted question
Dominant language
Java
Stars
7.2k
Forks
820
Avg merge
5h 9m
Merged PRs (30d)
50

Description

A number of recent github issues (#647, #599, #512, #488) are focused around customizing and/or configuring Error Prone's behavior.

Historically, Error Prone has offered a (very) limited amount of configuration:
* Individual check severity level could be changed between `OFF`, `WARNING`, and `ERROR`
* Warnings could be disabled in generated code (`-XepDisableWarningsInGeneratedCode`)

In the past year, we've added a few more configuration flags
* `-XepAllDisabledChecksAsWarnings` - Turns on all of the optional checks as warnings for those wanting to see everything
* `-XepAllErrorsAsWarnings` - Demote all error-level checks to warning-level (this allows you to see all of the error prone errors at once as opposed to build, fix, build, fix, etc.)
* `-XepDisableAllChecks` - Completely disable all of the checks, allowing you to then turn on individual checks one at a time (used in a chain like `-XepDisableAllChecks -Xep:EqualsIncompatibleType:ERROR`)
* `-XepPatchLocation` and `XepPatchChecks` - used to control the [patching](http://errorprone.info/docs/patching) feature.

We have a new flag that's only available in the newest snapshots
* `-XepOpt:[Namespace:]FlagName[=Value]` - Pass any number of arbitrary flags to individual bug checkers or collections thereof (individual checkers can be customized

We've generally responded to requests for configuration changes by adding new flags, and dealing with the combinations of these flags has been a bit arbitrary.

We'd like to solicit feedback from the community to help us build a newer configuration model:

* What parts of Error Prone's behavior are you customizing now? Links to existing configurations on github are helpful.
* If you are able to successfully configure Error Prone's behavior to your liking, do you feel that the configuration flags make it straightforward to do so?
* If you are not able to successfully configure Error Prone's behavior to your liking, what portions of Error Prone would you want to configure?
* In addition, I'll comment on this issue with a few things we can configure now, and a few of the proposed changes made in other issues. Feel free to :+1: these features, propose new ones, etc.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.