Contributing to the Eclipse RAP Project (Remote Application Platform)
=====================================================================

Contributions to the Eclipse RAP project are most welcome. There are many ways
to contribute, from entering high quality bug reports, to contributing code or
documentation changes.

For a complete guide, see the [Getting involved with RAP development] [1] page
on the RAP website.

Before a code contribution can be accepted by the project, you need to create
and electronically sign the Eclipse Foundation Contributor License Agreement
(CLA) and sign off on the Eclipse Foundation Certificate of Origin.

For more information, please visit [Contributing via Git] [2]

[1]: http://eclipse.org/rap/getting-involved/
[2]: http://wiki.eclipse.org/Development_Resources/Contributing_via_Git
