Jump to: navigation, search

EMF Compare/Contributor Guide

< EMF Compare
Revision as of 08:49, 26 July 2010 by Cedric.brun.obeo.fr (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Dependencies

  • Eclipse

Developping on EMF Compare requires the use of Eclipse Platform 3.3 at least, though it is possible to use the latest releases as well. It can be obtained through the Eclipse download page.

  • EMF

EMF Compare heavily relies on EMF and requires version 2.3 at least. We recommend using the SDK so as to have access to the sources as well. See the EMF downloads page

Checking out the code

Using Project Set File (PSF)

  • Download the PSF file and save it on your computer.
  • Open Eclipse and switch to the Java perspective
  • Through the File menu, select File => Import and in the Import popup, select Team => Team Project Set and hit "Next"
  • Open the psf file you saved on your disk
  • Eclipse might prompt you to create the repository. Do so by either choosing pserver connection with "anonymous" as your user name, or extssh connection if you are a commiter.
  • Each plugin will be checked out in your workspace

Manual check out

[PENDING]

Developping EMF Compare patches or code

Checkstyle

The EMF Compare team uses Checkstyle with its own set of rules in order to have an homogeneous code style throughout the plugins and features.

The Eclipse plugin for Checkstyle can be downloaded on sourceforge. Once installed, it will be automatically applied to all existing EMF Compare plugins as they are already configured to use it. New projects can use the same set of rule :

  • Right-click on the project which has to be checked through Checkstyle and select "Properties".
  • In the "Checkstyle" category, go to the "Local Checkstyle configuration" tab
  • Hit "New" and select "project-relative configuration" from the "type" drop down menu. Set the name of this configuration as you see fit ("EMF Compare" for example) and click the "Open..." button for the localisation.
  • Browse to "org.eclipse.emf.compare/codeStyle" and select EMFCompareCheckstyleConfiguration.xml. Select "Ok" twice to end this wizard.
  • Go back to the "General" tab, then tick "Activate Checkstyle on this project"
  • In the drop-down below, select the configuration you just created, the click OK to close the properties dialog.
  • That's it : your project will now go through the EMF Compare Chekstyle rules on each compilation.

Note that Checkstyle errors are not considered fatal compilation errors : you can still run code with checkstyle errors. Nearly each of EMF Compare check is set to report an error though, as we always try and comply to these rules.

Code Formatting

At first, most of the checkstyle errors that will be reported will probably be formatting errors : you can configure your formatter to use EMF Compare configuration to avoid these.

  • Click on Window => Preferences
  • Browse to the "Java => Code Style => Formatter" category and click on the "Import" button
  • Browse to the "<workspace>/org.eclipse.emf.compare/codeStyle" directory and select "EMFCompareformatter.xml"
  • hit Ok twice to close the preferences dialog

Your formatter will now comply to EMF Compare code style. Hitting ctrl+shift+F in a java editor will format your class to follow this style.

Note that all EMF Compare plugins are already configured to make use of this formatter

Java

EMF Compare is built against Java 1.5 : usage of the JDK 1.6 API will result in build errors and should be avoided.

Target Platform

We try our best to ensure downward compatibility towards Eclipse Europa, as such we use the following as our target platform :

Eclipse SDK 3.3.2

EMF SDK 2.3.2

The target platform is added both UML2 and Subversive for maintenance of the examples and the subversive integration feature

UML2 SDK 2.1.1

Subversive 0.7.7 Archived update site

The target platform can be set through the preference page accessible via Window => Preferences => Plug-in Development => Target Platform. More information on how to set a target platform for development can be found in the Eclipse help.

API Tooling

The EMF Compare development team uses the target platform augmented with the M6 EMF Compare build to maintain API compatibility. Checks for API breakages and evolutions are set per project and committed alongside them. All of these settings are still soft and don't ensure full API compatibility for now, they will be changed for strict API maintenance as soon as EMF Compare 1.0 is released.