# Contributing to Eclipse Hawk

Eclipse Hawk is a model indexing framework for fast, scalable querying of large
models. It mirrors a set of remote models (which may be broken up into many
small files) into a local database, so you can answer global queries without
having to keep the entire model in memory. Eclipse Hawk does not require you to
change modelling technology, and it allows for indexing model elements by
derived expressions and not just single attributes.

The main website is here:

  https://www.eclipse.org/hawk/

## Building Hawk as Java libraries

Eclipse Hawk can be built in two ways: as a set of plain Java libraries, or as a
set of Eclipse plugins. To build Hawk as a set of plain Java libraries, run this
command from this folder:

    mvn -f pom-plain.xml package

Please keep in mind that not all Hawk components are available as Java libraries.

## Building Hawk as Eclipse plugins

To build Eclipse Hawk as a set of Eclipse plugins, run these commands from this folder:

    mvn -f core/pom.xml install
    mvn -f greycat/pom.xml install
    mvn -f server/pom.xml install

You may want to run the `neo4j/pom.xml` file as well if you would like to use
the GPLv3-licensed Neo4j support. The Neo4j components are not distributed in
binary form from Eclipse: you will have to build them yourself and adopt Eclipse
Hawk under the secondary GPLv3 license in that case.

## Building from Eclipse

The website contains all the documentation needed to compile and run all
components of Hawk from Eclipse. Please see this page:

  https://www.eclipse.org/hawk/developers/run-from-source/

## Bumping the version of Hawk

When starting work on a new release, you can bump all versions with the provided
bump-version.sh script. It can be used like this:

  ./bump-version.sh 2.1.0

You will need to have XMLStarlet installed:

  http://xmlstar.sourceforge.net/

In Debian-based distributions (e.g. Ubuntu), you will find it as the
"xmlstarlet" package, and it can be installed as usual:

  sudo apt install xmlstarlet

## Website links

If you would like to communicate with us, please
use the official Eclipse Hawk forum:

  https://www.eclipse.org/forums/index.php/f/442/

You can file bugs through the link in the website, which has links to the main
Git repository as well. If you would like to contribute changes, please submit a
patch together with your bug report. You will need to sign the Eclipse
Contributor Agreement before we can integrate your code:

  https://www.eclipse.org/legal/ECA.php
