blob: 6d43bf6b589d573f15282f30c1985478f8fae482 [file] [log] [blame]
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!