Skip to content

Latest commit

 

History

History
136 lines (96 loc) · 6.26 KB

CONTRIBUTING.md

File metadata and controls

136 lines (96 loc) · 6.26 KB

Contributing to the Oracle Coherence Demonstration

Copyright (c) 2014, 2016 Oracle and/or its affiliates The Universal Permissive License (UPL), Version 1.0

Becoming a Contributor

Contributing to the Coherence Demonstration can be done in various ways, each of which is valuable to the Java and Oracle Coherence Community. Contributions may include helping out by answering questions on the forums, isolating and submitting defects resolution requests, proposing or submitting defect resolutions (fixes), suggesting or building enhancements, introducing new features and improving tests and documentation.

For all contributions that involve making a change to the source tree and thus releasing a new build of the Coherence Demonstration, those primarily being a defect fix, enhancement, new feature or documentation improvement, all non-Oracle contributors must complete and sign the Oracle Contributors Agreement.

To do this, simply print out the form, fill in the necessary details, scan it in and return via email to: oracle-ca_us [at] oracle [dot] com.

Note 1: For the "Project Name:" please write "Coherence Demonstration".

Note 2: This is the same agreement used for making contributions to GlassFish, Open Solaris and the Open Java itself. If you already have executed this agreement then you're ready to contribute to the Coherence Demonstration.

Should you have any questions regarding this agreement, you should consult the Oracle Contributors Agreement FAQ

Roles and Responsibilities

As mentioned above, there are quite a few ways to contribute to the Coherence Demonstration, and not all of them involve contributing source code! Simply using the software, participating on mailing lists or forums, filing bug reports or enhancement requests are an incredibly valuable form of participation.

The typical roles and responsibilities for contributors to the Coherence Demonstration project are often categorized as follows:

Users, Contributors, Committers, Maintainers, and Project Leads.

Users:

Users are the people who use the software. Users are using the software, reporting bugs, making feature requests and suggestions. This is by far the most important category of people. Without users, there is no reason for the project.

How to become one: Download the software and use it to build an application.

Contributors:

Contributors are individuals who contribute to an Coherence Demonstration project, but do not have write access to the source tree. Contributions can be in the form of source code patches, new code, or bug reports, but could also include documentation content like articles, FAQs, or screenshots.

A contributor who has sent in beneficial source code patches on a project can be elevated to Committer status by a Maintainer.

Integration of a Contributor submissions done at the discretion of a Maintainer, but this is an iterative, communicative process. Note that for code to be integrated, a completed Oracle Contribution Agreement is required from each contributor.

How to become one: Contribute in any of the ways described above: either code, examples, web site updates, tests, bugs, and patches. If you're interested in becoming a Committer to the source base, get the sources to the project, make an improvement or fix a bug, and send that code to the developers using a Pull Request or attach it to the bug report in the issue tracking system.

Committers:

Committers are individuals that have had Pull Requests for their contributions accepted.

Rules for how , once you have commit access, will vary by project and module. Be sure to ask before you start making changes!

How to become one: Submit Pull Requests, and ask the Maintainer of the code to review and accept the changes. The Maintainer will review the changes and seek consensus with other Maintainers and committers.

Maintainers:

Each module has one Maintainer, who has check-in permissions (either for that module or globally), and "manages" a group of Committers. They are responsible for reviewing contributed Pull Requests, bug fixes, and new code from the development branch of the source tree into the stable branch. Maintainers are responsible for making sure that these contributions do not break the build.

The Maintainer is also responsible for ensuring everyone who contributes has submitted an Oracle Contribution Agreement.

A Maintainer is responsible for their module, and for accepting Pull Requests from Contributors. They also act as the "police force" of the module, helping to ensure quality across the build.

How to become one:

  • Start a module (you need to have written some working code on your project to do this, you'll also need to talk to the Project Lead).

  • Have responsibility for that module handed over to you from the current Maintainer.

  • Take over an abandoned project--sometimes someone starts something, but for one reason or another can't continue to work on it. If it's interesting to you, volunteer!

Project Lead:

The Coherence Demonstration has several Project Leads.

The Project Leads are currently appointed by Oracle. They are responsible for managing the entire project, helping to create policies by consensus that ensure global quality.

Making a Contribution

All contributors are required to be a Committer in order to commit contributions to the Coherence Demonstration, including documentation.

To become a Committer you must first clearly demonstrate both skill as a developer and be capable of strictly adhering to the quality and architectural requirements of the Coherence Demonstration. In order to demonstrate these abilities, it's best to get started by submitting Pull Requests and then asking the Maintainer or Project Lead to review said changes, after which they may be accepted and submitted (either by the Maintainer or Project Lead).

Like all large projects, the Coherence Demonstration employs strict coding guidelines. For the most part these are easily automated using the preferred tool called JIndent. A JIndent style-template for the Coherence Demonstration is located in the documents folder of the source tree.

Note: Oracle does not supply licenses for JIndent.