Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Henshin/Committer Instructions
Henshin uses Gerrit for handling code reviewing and merging. This implies specific processes when setting up the development environment and pushing changes.
Set-up
The following steps are for setting up the development environment based on eGit, Eclipse's git integration. Steps may vary if you don't want to use eGit.
- If you don't have one yet, generate a SSH RSA key pair: do ssh-keygen -t rsa in the git shell.
- Register your public key at https://git.eclipse.org/r/#/settings/ssh-keys
- Make sure your local git's committer e-mail address matches the one registered at https://git.eclipse.org/r/#/settings/contact
- To view the local e-mail address, do git config user.email. An empty result means the e-mail address has not been set yet.
- To change the local e-mail address, do git config --global user.email [your email address here]
- In the same manner, you can view and change your committer name using the user.name environment variable.
- To ensure correct handling of line endings when using Windows, please use the following git configs: core.autocrlf=true and core.filemode=false. If you have dirty projects due to Windows line endings, try a hard reset after setting the config.
- In Eclipse, clone the Henshin repo from ssh://committer_id@git.eclipse.org:29418/henshin/org.eclipse.emft.henshin.git
- Restarting Eclipse before this step may be required.
- It is also possible to clone via https, but with a separate HTTP password.
- In the Git perspective, open the Repository: Remotes -> Right click on origin -> Gerrit Configuration... -> Finish.
- Follow the steps outlined in the next section.
Importing projects into your workspace and resolving dependencies
Henshin's codebase is divided into plug-ins with different responsibilies, for example:
- Plug-in org.eclipse.emf.henshin.model: The meta-model
- Plug-in org.eclipse.emf.henshin.diagram: The graphical editor
- Plug-in org.eclipse.emf.henshin.interpreter: The interpeter
- Plug-ins org.eclipse.emf.henshin.{edit,editor}: The tree-based editor
All plug-ins are contained in the plugins folder in the root directory of our Git repo. Import the plug-ins you want to work on as Eclipse projects into your workspace. Depending on your selection, you may encounter various build errors. Resolve the missing dependencies as follows:
- On build errors for org.eclipse.emf.henshin.diagram, use the Eclipse Marketplace (in Help menu) to install the Graphical Modeling Framework Tooling feature.
- On build errors for org.eclipse.emf.henshin.giraph, use the Eclipse Marketplace to install the Maven Integration for Eclipse feature.
- On build errors for the org.eclipse.emf.henshin.text projects, use the Eclipse Marketplace to install the Eclipse Xtext feature. On further build errors, trigger the Xtext generation process: navigate to org.eclipse.emf.henshin.text -> GenerateHenshin_text.mwe2, right click and do Run As -> MWE2 Workflow.
- On build errors for org.eclipse.emf.henshin.text.transformation, use the Eclipse Marketplace to install the QVT Operational feature. Navigate to the Metamodel Mappings: right click the package org.eclipse.emf.henshin.text.transformation -> Properties -> Metamodel Mappings. There add mappings for org.eclipse.emf.henshin.model/model/henshin.ecore and org.eclipse.emf.henshin.text/model/generated/Henshin_text.ecore: Add -> Browse -> navigate to .ecore-file.
- On build errors for org.eclipse.emf.henshin.interpreter.ui, org.eclipse.emf.henshin.multicda.cpa or org.eclipse.emf.henshin.text.transformation.tests, use the Eclipse Marketplace to install the EMF Compare feature.
- On build errors for org.eclipse.emf.henshin.multicda.cpa, install the AGG Runtime from the Eclipse Orbit Update Site (Help -> Install new software -> Work with this URL and use the filter to find the AGG Runtime)
Pushing changes
After pushing a change, a corresponding entry on Gerrit has been created. Please invite (a subset of) the other committers as reviewers, doing this for all changes.