Contributing to Papyrus Collaborative Modeling	 
==================================

Thanks for your interest in this project.

__This repository is hosted at [Eclipse] (http://git.eclipse.org/c/papyrus/org.eclipse.papyrus-collaborativemodeling.git/)__

The associated modules can be installed through their Jenkins builds or, when available, their own update sites.
* Compare
  * [Nightly] (http://download.eclipse.org/modeling/mdt/papyrus/components/compare/updates/nightly)
  * [Integration] (http://download.eclipse.org/modeling/mdt/papyrus/components/compare/updates/integration)

* CDO
  * [Nightly] (https://ci.eclipse.org/papyrus/job/Papyrus-CDO/lastSuccessfulBuild/artifact/repository/)

* Revision
  * [Nightly] (https://ci.eclipse.org/papyrus/job/Papyrus-Revision/lastSuccessfulBuild/artifact/plugins/revision/releng/org.eclipse.papyrus.revisiontool.p2/target/repository/)

 
If you have any questions, please ask them on the [Forum] (https://www.eclipse.org/forums/index.php/f/121/)

