I think we avoid bikeshed by making incremental changes. If you offer
a commit to turn off serial version UID whining, I'll +1 it. And then
we iterate, in small doses, agreeing to either spike the warning or
change the code.


In passing, I will warn you that the IDEs can be very stubborn; in
some cases, there is no way to avoid some amount of whining. Eclipse
used to insist on warning on every @SuppressWarnings that it didn't
understand. It might still.

On Sun, Mar 16, 2014 at 5:29 PM, Shawn Heisey <s...@elyograg.org> wrote:
> A starting comment: We could bikeshed for *years*.
>
> General thought: The more I think about it, the more I like the notion
> of confining most of the cleanup to trunk.  Actual bug fixes and changes
> that are relatively non-invasive should be backported.
>
> On 3/16/2014 2:48 PM, Uwe Schindler wrote:
>>> Just because some tool expresses distaste, doesn't imply that everyone here
>>> agrees that it's a problem we should fix.
>>
>> Yes that is my biggest problem. Lots of warnings by Eclipse are just 
>> bullshit because of the code style in Lucene and for example the way we do 
>> things - e.g., it complains about missing close() all the time, just because 
>> we use IOUtils.closeWhileHandlingExceptions() for that.
>
> My original thought on this was that we should use a combination of
> SuppressWarnings and actual code changes to eliminate most of the
> warnings that show up in the well-supported IDEs when they are
> configured with *default* settings.
>
> Uwe brings up a really good point that there are a number of completely
> useless warnings, but I think there's still value in looking through
> EVERY default IDE warning and evaluating each one on a case-by-case
> basis to decide whether that specific warning should be fixed or
> ignored.  It could be a sort of background task with an open Jira for
> tracking commits.  It could also be something that we decide isn't worth
> the effort.
>
>>> In my experience, the default Sonar rulesets contain many things that people
>>> here are prone to disagree with. Start with serialVersionUID:
>>> do we care? Why would we care? In what cases to we really believe that a
>>> sane person would be using Java serialization with a Lucene/Solr class?
>>
>> We officially don't support serialization, so all warnings are useless. It's 
>> just Eclipse that complains for no reason.
>
> Project-specific IDE settings for errors/warnings (set by the ant build
> target) will go a long way towards making the whole situation better.
> For the current stable branch, we should include settings for anything
> that we want to ignore on trunk, but only a subset of those problems
> that get elevated to error status.
>
>>> Sonar can also be a bit cranky; it arranges for various tools to run via
>>> mechanisms that sometimes conflict with the ways you might run them
>>> yourself.
>>>
>>> So I'd suggest a process like:
>>>
>>> 1. Someone proposes a set of (e.g.) checkstyle rules to live by.
>>> 2. That ruleset is refined by experiment.
>>> 3. We make violations fail the build.
>>>
>>> Then lather, rinse, repeat for other tools.
>>
>> Yes I agree. I am strongly against PMD or CheckStyle without our own rules. 
>> Forbiddeen-apis was invented because of the brokenness of PMD and CheckStyle 
>> to detect default Locale/Charset/Timezone violations (and also because those 
>> tools are slow).
>> We should better fix out Eclipse Project generate to hide the warnings that 
>> are just wrong.
>>
>> I would prefer: Before we fix warnings by 3rd party tools like Eclipse, we 
>> should first fix only the warnings emitted by Javac. The others are just 
>> unimportant to me and I don't want to fix those which are just wrong for our 
>> code style.
>>
>> We already have ECJ in our build (to lint javadocs), we can make some 
>> Eclipse warnings fatal through the ecj config file in our SVN, to fail build 
>> on some warnings. I disagree with using PMD or Checkstyle, those tools are 
>> uncomplete and broken, sorry.
>
> +1 all around.  I want to eliminate all the noise.  If we had IDE
> warnings measured in dozens instead of thousands, it would be a useful
> data point that wouldn't get ignored.
>
> Thanks,
> Shawn
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: dev-h...@lucene.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to