Contributing to Melanee

Getting the source code

Melanee is split into different repositories. You only need to download the repository with the functionality you want to edit. All repositories depend on melanee-core. Hence, this is the minimal amount of source code to clone from github. The following repositories are available:

  • Melanee-core (stable): Ecore Meta-model; GMF Editor; Emendation Service; Designation Service; Generic Tree-based Visualization Editor; Configurable Visualization Search Algorithm; Extension-point Definitions
  • Melanee-graphdsl (experimental):Definition of graphical domain-specific modeling languages
  • Melanee-textdsl (not maintained):Definition of graphical domain-specific languages
  • Melanee-atl (experimental): Multi-level2Multi-level; Ecore2Multi-level;Multi-level2Ecore transformation support
  • Melanee-reasoning (not maintained): Model checking and reasoning
  • Melanee-ocl (experimental): Live Query Console; Multi-level aware OCL
  • Melanee-appdsl (stable): Customization of Modeling Environment

Please not that the maintenance levels (stable; experimental; not maintained) can vary upon user demand.

Repository Structure and Naming Conventions

All repositories have the same structure:

  • plugins: All plug-ins that contribute functionality
  • features: All plug-ins concerned with deployment: features; products; branding etc.
  • tests: All plug-ins contributing tests

Plug-ins are always named after the repository in which they are contained. A plug-in contained in e.g. melanee-core is named org.melanee.core.xxx where xxx stands for the plug-in name.

Setting up Eclipse

A target platform needs to be set to get the code compiling. Available target platforms are located in the org.melanee.core.target plug-in. Open the *.target file fitting the Eclipse version used for development. For instance if you use Eclipse Luna you have to open the file name core-4.4.target. Wait until all update sites are loaded (progress is shown in the status bar located at the lower left). Closing the target definition file before loading is finished can cause a broken cache. After the target platform is loaded, select “Set as Target Platform” in the upper right of the target file editor.

Building Melanee

To build a plugin execute mvn clean install on the root of the repository. All repositories support the publish parameter which allows to upload the build result to the download server after build. Melanee-core supports the package parameter to create zip files with Melanee distributions for all supported platforms.

To package and publish melanee call mvn clean install -Ppackage,publish in the root of the melanee-core repositories. All other repositories support mvn clean install -Ppublish.