Handly Contributor Guide
========================

Welcome to Handly, and thanks for your interest in this project.

Project description:
--------------------

Handly, a technology project at Eclipse, provides basic building blocks that
help developers create handle-based models similar in design principles to
the JDT Java model. The uniform API makes it possible to supply common
IDE components dealing with such models. Integration with Xtext editor
is provided along with support for other editors.

The intent is to come up with a really nice design in this problem area
through an open and transparent development process primarily driven by
community feedback.

For more information, visit the project's website.

- http://eclipse.org/handly/

Developer resources:
--------------------

Information regarding source code management and builds.

- https://projects.eclipse.org/projects/technology.handly/developer

Coding standards, bugs lifecycle, and more.

- https://wiki.eclipse.org/Handly/Committer_FAQ

Building locally:
-----------------

The build is based on Maven and Tycho and is easy to run on a local machine.

 1. Make sure you have JDK 7 and Maven 3 installed. Both should be on the path.
 2. Clone the Handly Git repository and pick the desired branch.
 3. Open a shell to the Git workspace and execute

    $ cd releng
    $ mvn clean install

Once the build completes, the `repository/target` folder in the Git workspace
will contain a repository of build artifacts.

Setting up a developer workspace:
---------------------------------

Handly currently uses `JavaSE-1.6` for compilation. Please add a matching JRE.
Perfect match (i.e. JDK 1.6) is recommended to avoid build warnings. You will
also need to add a `JavaSE-1.7` compatible JRE to be able to run predefined
launch configurations for Handly tests and examples.

Handly employs specific Java code formatting conventions. Please import and use
the formatter profile from `tools/formatter.xml`. Note that the current profile
is intended to be used with the new formatter available since Eclipse Mars
release (4.5.0), and may produce suboptimal results with previous Eclipse
versions.

Import all projects from the Git workspace (don't search for nested projects)
and set the target platform using a `.target` file provided within the
`targets` project.

There are currently two target platforms defined. The base platform
(`base.target`) defines the base API level, whereas the latest platform
(`latest.target`) defines the latest functional level. Development tends
to be done against the base platform, while continuous integration tends
to be done against the latest platform.

Handly Examples define some auxiliary Xtext-based languages. Note that for
the MWE2 generator of the language Xtext infrastructure to work, the developer
tool and the target platform should contain Xtext of the same version. A simple
way to achieve that is to install the developer tool using one of the provided
`.p2f` files that can be found in the Git workspace `tools` folder. They are
designed to be consistent with their namesake `.target` files.

Contributing:
-------------

General process and policy for making a contribution.

- https://wiki.eclipse.org/Development_Resources/Contributing_via_Git

Project-specific details and further references.

- https://wiki.eclipse.org/Handly/Committer_FAQ

Contributor License Agreement:
------------------------------

Before your contribution can be accepted by the project, you need to create
and electronically sign the Eclipse Foundation Contributor License Agreement
(CLA).

- http://www.eclipse.org/legal/CLA.php

For more information, see CLA FAQ.

- https://www.eclipse.org/legal/clafaq.php

Contact:
--------

Contact the project developers via the project's "dev" list.

- https://dev.eclipse.org/mailman/listinfo/handly-dev

Search for bugs:
----------------

This project uses Bugzilla to track ongoing development and issues.

- https://bugs.eclipse.org/bugs/buglist.cgi?product=Handly

Create a new bug:
-----------------

Bug reporting FAQ.

- https://wiki.eclipse.org/Bug_Reporting_FAQ

Be sure to search for existing bugs before you create another one.

- https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Handly

Remember that contributions are always welcome!