Fork me on GitHub

Contributing to the Oracle Coherence Hibernate Integration Project

Overview

Developing code and documentation for the Oracle Coherence Hibernate Integration project is a serious matter, as members of the Coherence Community may adopt the implementations provided by the project for use in production scenarios. Consequently every effort has to be made to ensure that project's modules are well-tested and stable, including against the range of dependency versions declared in project poms.

Becoming a Contributor

Contributing to the Oracle Coherence Hibernate Integration project can be done in various ways, each of which is valuable to the Coherence Community as a whole. Contributions may include helping out by answering questions on the forums, creating issue reports in the project's issue tracker, proposing or submitting defect resolutions (fixes), suggesting or building enhancements, or introducing new features and improving tests and documentation.

For contributions that involve making a change to the source tree and therefore requiring a new release of the project - specifically defect fixes, enhancements, new features or documentation improvements - non-Oracle contributors must complete and sign the Oracle Contributors Agreement.

To do so, 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 "Oracle Coherence Hibernate Integration".

Note 2: This is the same agreement used for making contributions to Java itself. If you already have executed this agreement then you're ready to contribute to the project.

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 participate on projects that are part of the Oracle Coherence Hibernate Integration project, 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.

If one were to break down the forms of participation for the project into a set of roles, the result would look something like this:

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 the Oracle Coherence Hibernate Integration 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 web site content like documentation improvements, FAQs, or screenshots.

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

Integration of a Contributor submissions is 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 mailing list or attach it to the bug report in the project issue tracking system.

Committers:

Committers have write access to the source tree, either for the individual modules they are working on, or in some cases global write permissions everywhere in the source code management system.

A Committer must first become a Contributor before they can be granted access to commit to the source tree.

Rules for how to commit, 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 some patches via email, and ask the Maintainer of the code you've patched for commit access. The Maintainer will seek consensus before granting Committer access, but their decisions are final.

Maintainers:

Each module has one Maintainer, who has check-in permissions (either for that m odule or globally), and "manages" a group of Committers. They are responsible for merging contributed patches, 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 checking that everyone who contributes code has submitted an Oracle Contribution Agreement.

A Maintainer is responsible for their module, and for granting check-in privileges to 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:

Each project in the Coherence Community has an overall Project Lead. 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 Coherence Community projects, 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 Coherence Community projects. In order to demonstrate these abilities, it's best to get started by submitting patches or improvements via email 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).