I think that something like checkstyle, PMD and FindBugs, and update the 
contribution page asking contributors to review their changes before sending 
PR's or patches would help. 
It would be good to avoid replicating unnecessary policies in the web site 
though. Like suggesting that we expect the contributor to use 80 columns. That 
would mean that we would have to update the checktyle XML rule file and the web 
site if we decided to use 120 or any other number. We can probably leave some 
basic policies (no tabs, no unused imports, etc).
WDYT?
Bruno

 
      From: A. Soroka <[email protected]>
 To: "[email protected]" <[email protected]> 
 Sent: Wednesday, May 13, 2015 2:07 AM
 Subject: Code policies
   
>From comments on some "clean up" PRs I submitted over this past weekend, it 
>seems that it would be nice to have some rough code standards that could help 
>newcomers _without_ inhibiting anyone from contributing. Possible policies 
>that came up included:

    • Don't give a method signature that throws checked exceptions that aren't 
ever thrown from the code in that method unless an API supertype specs it.
    • Don't leave unused imports in. Any IDE can solve that problem with one 
keystroke. {grin}
    • If a type declares a supertype that isn't a required declaration, 
consider whether that clarifies or confuses the intent. The former is okay, the 
latter not so good.
    • Minimize the compiler warnings your code throws up. If you use 
@SuppressWarnings to hide them, please add a comment explaining the situation 
or a TODO with a potential future fix that would allow removing the suppression.
    • Remove unused local variables or fields or uninteresting unused private 
methods. If it's debugging detritus, consider replacing it with good logging 
code for future use, if that seems likely to become useful.
    • If there is valuable code in some unused private method, add a 
@SuppressWarnings with an explanation of when it might become useful. If there 
is valuable but "dead" code inside a "live" method, consider breaking it out 
into a private method and adding a @SuppressWarnings and an explanation.

If we can develop a reasonable list of expectations for contributions (and 
presumably, for the current code base) I will be happy to write some text for 
project site pages and try to encode some of the expectations with Maven 
Checkstyles. To be clear, I'm not suggesting any kind of blocking step in the 
build process, just a chance for some handy feedback about code submissions.

Thoughts?

---
A. Soroka
The University of Virginia Library


   

Reply via email to