I incorporated the changes.  This is what the doc looks like now:
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=61332235

As an open source project, Metron welcomes contributions of all forms. The 
sections below will help you get started.
1. How To Contribute
We are always very happy to have contributions, whether for trivial cleanups, 
little additions or big new features.
If you don't know Java or Scala you can still contribute to the project. We 
strongly value documentation and gladly accept improvements to the 
documentation.
1.1  Contributing A Code Change
To submit a change for inclusion, please do the following:
If there is not already a JIRA associated with your pull request, create it, 
assign it to yourself, and start progress
If there is a JIRA already created for your change then assign it to yourself 
and start progress
If you don't have access to JIRA or can't assign an issue to yourself, please 
message [email protected] and someone will give you permission
If you are introducing a completely new feature or API it is a good idea to 
start a discussion and get consensus on the basic design first.  Larger changes 
should be discussed on the dev boards before submission.
New features and significant bug fixes should be documented in the JIRA and 
appropriate architecture diagrams should be attached.  Major features may 
require a vote.
Note that if the change is related to user-facing protocols / interface / 
configs, etc, you need to make the corresponding change on the documentation as 
well.
Craft a pull request following the guidelines in Section 2 of this document
Pull requests should be small to facilitate easier review. Studies have shown 
that review quality falls off as patch size grows. Sometimes this will result 
in many small PRs to land a single large feature.
People will review and comment on your pull request.  It is our job to follow 
up on pull requests in a timely fashion.
Once the pull request is merged, manually close the corresponding JIRA
1.2 Reviewing and merging patches
Everyone is encouraged to review open pull requests. We only ask that you try 
and think carefully, ask questions and are excellent to one another. Code 
review is our opportunity to share knowledge, design ideas and make friends.
When reviewing a patch try to keep each of these concepts in mind:
 
Is the proposed change being made in the correct place? Is it a fix in a 
backend when it should be in the primitives?  In Kafka vs Storm?
What is the change being proposed?  Is it based on Community recognized issues?
Do we want this feature or is the bug they’re fixing really a bug?
Does the change do what the author claims?
Are there sufficient tests?
Has it been documented?
Will this change introduce new bugs?

2.  Implementation

2.1  Grammar and style
These are small things that are not caught by the automated style checkers.
Does a variable need a better name?
Should this be a keyword argument?
In a PR, maintain the existing style of the file.
Don’t combine code changes with lots of edits of whitespace or comments; it 
makes code review too difficult. It’s okay to fix an occasional comment or 
indenting, but if wholesale comment or whitespace changes are needed, make them 
a separate PR.
Use the checkstyle plugin in Maven to verify that your PR conforms to our style
2.2  Code Style
Follow the Sun Code Conventions outlined here: 
http://www.oracle.com/technetwork/java/codeconvtoc-136057.html
except that indents are 2 spaces instead of 4
2.3  Coding Standards
Implementation matches what the documentation says  
Logger name is effectively the result of Class.getName() 
Class & member access - as restricted as it can be (subject to testing 
requirements)  
Appropriate NullPointerException and IllegalArgumentException argument checks  
Asserts - verify they should always be true  
Look for accidental propagation of exceptions  
Look for unanticipated runtime exceptions  
Try-finally used as necessary to restore consistent state  
Logging levels conform to Log4j levels 
Possible deadlocks - look for inconsistent locking order  
Race conditions - look for missing or inadequate synchronization  
Consistent synchronization - always locking the same object(s)  
Look for synchronization or documentation saying there's no synchronization  
Look for possible performance problems  
Look at boundary conditions for problems  
Configuration entries are retrieved/set via setter/getter methods  
Implementation details do NOT leak into interfaces  
Variables and arguments should be interfaces where possible  
If equals is overridden then hashCode is overridden (and vice versa)  
Objects are checked (instanceof) for appropriate type before casting (use 
generics if possible)  
Public API changes have been publicly discussed  
Use of static member variables should be used with caution especially in 
Map/reduce tasks due to the JVM reuse feature 
2.4 Documentation

Code-Level Documentation
Self-documenting code (variable, method, class) has a clear semantic name
Accurate, sufficient for developers to code against
Follows standard Javadoc conventions
Loggers and logging levels covered if they do not follow our conventions (see 
below)
System properties, configuration options, and resources covered
Illegal arguments are properly documented as appropriate
Package and overview Javadoc are updated as appropriate
Javadoc comments are mandatory for all public APIs
Generate Javadocs for release builds

Feature-level documentation -  should be version controlled in github in README 
files.
Accurate description of the feature
Sample configuration and deployment options
Sample usage scenarios 

High-Level Design documentation - architecture description and diagrams should 
be a part of a wiki entry.
Provide diagrams/charts where appropriate.  Visuals are always welcome
Provide purpose of the feature/module and why it exists within the project
Describe system flows through the feature/module where appropriate
Describe how the feature/module interfaces with the rest of the system
Describe appropriate usages scenarios and use cases

Tutorials - system-level tutorials and use cases should also be kept as wiki 
entries.
Add to the Metron reference application documentation for each additional major 
feature
If appropriate, publish a tutorials blog on the Wiki to highlight usage 
scenarios and apply them to the real world use cases
2.5  Tests
Unit tests exist for bug fixes and new features, or a rationale is given in 
JIRA for why there is no test 
 Unit tests do not write any temporary files to /tmp (instead, the tests should 
write to the location specified by the test.build.data system property)  
 
2.6  Merge requirements
Because Metron is so complex, and the implications of getting it wrong so 
devastating, Metron has a strict merge policy for committers:
Patches must never be pushed directly to master, all changes (even the most 
trivial typo fixes!) must be submitted as a pull request.
A committer may merge their own pull request, but only after a second reviewer 
has given it a +1. A qualified reviewer is a Metron committer or PPMC member.
A non-committer may ask the reviewer to merge their pull request or 
alternatively post to the Metron dev board to get another committer to merge 
the PR if the reviewer is not available. 
There should be at least one independent party besides the committer that have 
reviewed the patch before merge.
A patch that breaks tests, or introduces regressions by changing or removing 
existing tests should not be merged. Tests must always be passing on master. 
This implies that the tests have been run.
All pull request submitters must link to travis-ci 
If somehow the tests get into a failing state on master (such as by a backwards 
incompatible release of a dependency) no pull requests may be merged until this 
is rectified.
All merged patches will be reviewed with the expectation that automated tests 
exist and are consistent with project testing methodology and practices, and 
cover the appropriate cases ( see reviewers guide )

The purpose of these policies is to minimize the chances we merge a change that 
jeopardizes has unintended consequences.
 
3.  JIRA
The Incompatible change flag on the issue's JIRA is set appropriately for this 
patch  
For incompatible changes, major features/improvements, and other release 
notable issues, the Release Note field has a sufficient comment 


20.12.2016, 09:42, "[email protected]" <[email protected]>:
> I don't have enough experience on the Java/Javadoc side to make a specific
> suggestion, but with other languages I've used Sphinx and Doxygen with
> great results.
>
> Jon
>
> On Tue, Dec 20, 2016 at 11:29 AM Michael Miklavcic <
> [email protected]> wrote:
>
>>  Were you thinking javadoc or something more? I wouldn't mind seeing us
>>  produce a javadoc site, if we aren't already doing so.
>>
>>  On Dec 20, 2016 9:25 AM, "[email protected]" <[email protected]> wrote:
>>
>>  > Regarding documentation - while I'm not a huge fan of that approach (I
>>  > would prefer to see documentation generated from the code), I think it
>>  > could work in the short term. Having that outlined both in the coding
>>  > guidelines and on the wiki would be important.
>>  >
>>  > I agree with the comments about author != committer, and 100% code
>>  > coverage.
>>  >
>>  > Jon
>>  >
>>  > On Tue, Dec 20, 2016 at 11:10 AM James Sirota <[email protected]>
>>  wrote:
>>  >
>>  > > In my view the lower-level documentation that should be source
>>  controlled
>>  > > with the code belongs on github and then use case documentation and
>>  > > top-level architecture diagrams belong on the wiki. What do you think?
>>  > >
>>  > > I think if the author is not a committer and can't merge then the
>>  > reviewer
>>  > > should probably merge or the PR originator should ping the dev board to
>>  > get
>>  > > someone to merge the PR in. Does that seem reasonable to everyone?
>>  > >
>>  > > 18.12.2016, 13:10, "Kyle Richardson" <[email protected]>:
>>  > > > Couple of questions/comments:
>>  > > >
>>  > > > In 2.4, we talk about Javadoc and code comments but not too much
>>  about
>>  > > the
>>  > > > user documentation. Should we, possibly in a section 4, give some
>>  > > > recommendations on what should go into the README files versus on the
>>  > > wiki?
>>  > > > This could also help the reviewer know if the change is documented
>>  > > > sufficiently.
>>  > > >
>>  > > > In 2.6, we say that 1 qualified reviewer (Apache committer or PPMC
>>  > > member)
>>  > > > other than the author of the PR must have given it a +1. In the case
>>  > > where
>>  > > > the author is not a committer (who could merge their own PR), should
>>  we
>>  > > > state that the reviewer will be responsible for the merge?
>>  > > >
>>  > > > -Kyle
>>  > > >
>>  > > > On Fri, Dec 16, 2016 at 6:39 PM, James Sirota <[email protected]>
>>  > > wrote:
>>  > > >
>>  > > >> Lets move this back to the discuss thread since it's still
>>  generating
>>  > > that
>>  > > >> many comments. Please post all your feedback and I will incorporate
>>  > it
>>  > > and
>>  > > >> put it back to a vote.
>>  > > >>
>>  > > >> Thanks,
>>  > > >> James
>>  > > >>
>>  > > >> 16.12.2016, 16:12, "Matt Foley" <[email protected]>:
>>  > > >> > +1
>>  > > >> >
>>  > > >> > In 2.2 (follow Sun guidelines), do you want to add the notation
>>  > > “except
>>  > > >> that indents are 2 spaces instead of 4”, as Hadoop does? Or does
>>  the
>>  > > Metron
>>  > > >> community like 4-space indents? I see both in the Metron code.
>>  > > >> >
>>  > > >> > My +1 holds in either case.
>>  > > >> > --Matt
>>  > > >> >
>>  > > >> > On 12/16/16, 9:34 AM, "James Sirota" <[email protected]> wrote:
>>  > > >> >
>>  > > >> > I incorporated the changes to the coding guidelines from our
>>  > discuss
>>  > > >> thread. I'd like to get them voted on to make them official.
>>  > > >> >
>>  > > >> > https://cwiki.apache.org/confluence/pages/viewpage.
>>  > > >> action?pageId=61332235
>>  > > >> >
>>  > > >> > Please vote +1, -1, 0
>>  > > >> >
>>  > > >> > The vote will be open for 72 hours.
>>  > > >> >
>>  > > >> > -------------------
>>  > > >> > Thank you,
>>  > > >> >
>>  > > >> > James Sirota
>>  > > >> > PPMC- Apache Metron (Incubating)
>>  > > >> > jsirota AT apache DOT org
>>  > > >>
>>  > > >> -------------------
>>  > > >> Thank you,
>>  > > >>
>>  > > >> James Sirota
>>  > > >> PPMC- Apache Metron (Incubating)
>>  > > >> jsirota AT apache DOT org
>>  > >
>>  > > -------------------
>>  > > Thank you,
>>  > >
>>  > > James Sirota
>>  > > PPMC- Apache Metron (Incubating)
>>  > > jsirota AT apache DOT org
>>  > >
>>  > --
>>  >
>>  > Jon
>>  >
>>  > Sent from my mobile device
>>  >
> --
>
> Jon
>
> Sent from my mobile device

------------------- 
Thank you,

James Sirota
PPMC- Apache Metron (Incubating)
jsirota AT apache DOT org

Reply via email to