-
Notifications
You must be signed in to change notification settings - Fork 497
[prone] apply -XepDisableAllWarnings
#2754
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
Conversation
- diffplug#2745 Signed-off-by: Vincent Potucek <[email protected]>
3f81241 to
b3090bd
Compare
|
I prefer to just remove it. It provided us a huge migration, great, but all that churn didn't reveal any bugs. Errorprone is a great project, but Spotless is a weird case, I don't think it's a good fit for all the weird glue code that makes Spotless work. |
Usability, accessibility, and readability are also considered a form of “bug” and or "issue", at least within the context of this project. With tools like this, it’s also about preventing further issues from occurring. I understand you’re against it, but “error-prone” is already well-established throughout Gradle and similar ecosystems. It makes me wonder why this Java codebase should be treated differently from others. |
|
Spotless has a ton of stuff in it. As a projects get large, they tend to get harder to contribute to, such that eventually it's so hard that new stuff doesn't make it in at all. Right now there are two PRs adding new features that I think are quite useful
And for both PRs, I have spent more time on quality checks for nits that I think are immaterial. Quality matters for sure, but I think Spotbugs has a better signal-to-noise ratio. It stays quiet unless it's a biggish deal. I'm open to being wrong, and for Spotless I try to lean towards "let people do what they want if it doesn't break other people's stuff". Right now I think I've let it swing too far towards strict checks, and it's too hard to get an actual feature or bugfix into the codebase because it gets mired in strict automated rules. A good barometer for this is
I believe we found 0. It's cleaner now, sure, but it's mostly stylistic. I'm fine with style rules, I'm not okay with the project being hard to contribute to. |
This seems like a questionable conclusion, since we had to suppress three real Error Prone findings:
I would suggest fixing the issues you’ve encountered, because it really looks like something is misconfigured or mis-implemented. Suppressing them doesn’t seem like a healthy long-term approach.
That really shouldn’t be the case. If it is, then I generally have no issues writing code that Error Prone doesn’t complain about, so I would genuinely appreciate seeing the exact issues you ran into. Normally, Error Prone and similar tools are designed to only flag odd or suspicious patterns — the kinds of things that are worth reviewing because they often hide real problems. If not its a problem in the check itself. Thanks for the update. |
It wants the author to use Quality is good, but the goal is delivering value. People deliver value with shit codebases all the time. It's not my goal to have a shit codebase, haha, but it's more important to deliver value and accept a little shit than to have a pristince cleanroom that nobody can land a new feature in. |
Yes, that’s the hard reality (humans are error prone) — all day, every day. In my opinion, we’re actually on the exact same page. We’re making the same arguments from slightly different angles, and we understand and relate to each other’s perspective. Please let me fix Error Prone — that’s the actual issue here, not Error Prone itself. It worked “perfectly fine” for at least 20 days. But now that we’ve introduced a lot of new code, it naturally has the potential to reveal many new findings. For example:
Having thousands of unrelated warnings is totally unacceptable, and it strongly motivates fixing the tool configuration so we can get clean, meaningful feedback again. @cushon Would it be sufficient to attach the commit as a zipped reproducer? |
-XepDisableAllWarningsgoogle/error-prone#5365Please DO NOT FORCE PUSH. Don't worry about messy history, it's easier to do code review if we can tell what happened after the review, and force pushing breaks that.
Please make sure that your PR allows edits from maintainers. Sometimes it's faster for us to just fix something than it is to describe how to fix it.
After creating the PR, please add a commit that adds a bullet-point under the
[Unreleased]section of CHANGES.md, plugin-gradle/CHANGES.md, and plugin-maven/CHANGES.md which includes:If your change only affects a build plugin, and not the lib, then you only need to update the
plugin-foo/CHANGES.mdfor that plugin.If your change affects lib in an end-user-visible way (fixing a bug, updating a version) then you need to update
CHANGES.mdfor both the lib and all build plugins. Users of a build plugin shouldn't have to refer to lib to see changes that affect them.This makes it easier for the maintainers to quickly release your changes :)