# Contributing to OCL

Thanks for your interest in this project.

## Project description

Eclipse OCL provides libraries and tools for the Object Constraint Language
(OCL) OMG standard using EMF-based models.

* https://projects.eclipse.org/projects/modeling.mdt.ocl

## Developer resources

Information regarding source code management, builds, coding standards, and
more.

* https://projects.eclipse.org/projects/modeling.mdt.ocl/developer

The project maintains the following source code repositories

* http://git.eclipse.org/c/ocl/org.eclipse.ocl.git

This project uses Bugzilla to track ongoing development and issues.

* Search for issues: https://eclipse.org/bugs/buglist.cgi?product=OCL&
* Create a new report: https://eclipse.org/bugs/enter_bug.cgi?product=OCL&

Be sure to search for existing bugs before you create another one. Remember that
contributions are always welcome!

A project distribution can be built by one of the launch configurations such as

/org.eclipse.ocl.releng.tycho/.launches/Build OCL Distribution - Nightly.launch

## Eclipse Contributor Agreement

Before your contribution can be accepted by the project team contributors must
electronically sign the Eclipse Contributor Agreement (ECA).

* http://www.eclipse.org/legal/ECA.php

Commits that are provided by non-committers must have a Signed-off-by field in
the footer indicating that the author is aware of the terms by which the
contribution has been provided to the project. The non-committer must
additionally have an Eclipse Foundation account and must have a signed Eclipse
Contributor Agreement (ECA) on file.

For more information, please see the Eclipse Committer Handbook:
https://www.eclipse.org/projects/handbook/#resources-commit

## Contact

Contact the project developers via the project's "dev" list.

* https://dev.eclipse.org/mailman/listinfo/mdt-ocl.dev
