Welcome to Eclipse Handly™, and thanks for your interest in this project. Big or small, every contribution matters.
Eclipse Handly provides basic building blocks for handle-based models, with an emphasis on high-level code-centric models that render Eclipse workspace from a programming language angle. It allows creating highly scalable, robust, and thoroughly optimized models similar in quality to the tried-and-tested Java model of Eclipse Java development tools while reducing programming effort, fostering software reuse, and enabling interoperability.
Handly is designed for flexibility and can be used to create source code models for practically any language, whether general-purpose or domain-specific; it is compatible with any parsing technology. The model implementor has complete control over the model's base-level API, including the ability to implement a preexisting handle-based model API. At the same time, the provided uniform meta-level API establishes a common language and makes it possible for IDE components to work in a generic way with any Handly-based model.
For more information, visit the project's website
Information regarding source code management and builds
Coding standards, bugs lifecycle, and more
Make sure you have JDK 11 and Maven 3.8.2 or above installed. Both should be on the path.
Make sure you have a local clone of the Handly Git repository.
Open a shell to the local clone of the Handly Git repository and execute
$ cd releng
$ mvn clean verify
Once the build completes, the
repository/target folder will contain a repository of build artifacts.
Handly currently uses
JavaSE-1.8 for compilation. Please add a matching JRE. Perfect match (i.e. Java SE 8) is recommended to avoid build warnings.
A number of the provided launch configurations use
JavaSE-11. To use them, add a matching JRE. (That is, normally, you have both Java SE 8 and Java SE 11 added.)
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 the Eclipse Oxygen (4.7) release, and may produce suboptimal results if used 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
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 infrastructure to work correctly, the Eclipse installation and the target platform should contain the same version of Xtext. A simple way to ensure that is to install Eclipse using one of the provided
.p2f files that can be found in the Git workspace
tools folder. These
.p2f files are kept consistent with their namesake
Handly uses API Tools to assist developers in API maintenance by reporting API defects. This requires setting an API baseline for the workspace. Please use the target platform defined in the
baseline.target file as the source of the default API baseline.
General process and policy for making a contribution
Project-specific details and further references
Before your contribution can be accepted by the project, you need to have signed the Eclipse Contributor Agreement (ECA)
For more information, see ECA FAQ
Contact the project developers via the project's “dev” list
This project uses Bugzilla to track ongoing development and issues
Bug reporting FAQ
Be sure to search for existing bugs before you create another one
Remember that contributions are always welcome!