GETTING INVOLVED

Everyone is invited to get involved with the EMF Forms project. Before you plan any kind of contribution, it is a good idea to contact the project team. The EMF Forms project is a subcomponent of the EMF Client Platform project (ECP). It therefore shares the development resources such as the git repositories wit ECP.

  • Writing bug reports

    Please provide a short and concise explanation of the problem and a snippet to reproduce the issue, ideally a JUnit test case that outlines the expected behavior. You are also invited to enter feature requests. Please use Bugzilla to report bugs and feature requests.

  • Commit Message Guidelines

    We have the following commit message template:

    (Bug <Bug ID> - <Bug Title>) | (TCI - <Fix>)
    
    <Commit Description>?
    Change-Id: <Generated Gerrit Change ID>
    Signed-off-by: <sign off name and email>
    			
    Instructions (Please continue READING):
    • TCI commits: For trivial code changes please use a TCI commit message. See list below for examples. If in doubt please discuss with reviewer.
    • Normal Commits: For all other commits use a commit message starting with 'Bug'. Bug reports with Proper Titles: Before using a Bug title for a commit, committer must update the Bug title to a reasonable and descriptive title for the task they have worked on
    • Commit Description: Additionally to the title, the commit message can describe briefly (2-3 sentences) how this commit fixes the bug from a technical perspective
    • Multiple Commits for same bug: Of course you may use the same bug and therefore bug title for multiple commits and their message, in this case please provide a unique description
    • Reviewers responsibility: The reviewer is responsible also for checking that the bug title is descriptive and reflects the committed change and that the description if any reflects the technical change
    TCI message examples:
    • JavaDoc
    • NPE
    • Version Update of manifest and pom
    • anonymous to inner class Conversion
    • Renaming local vars, e.g. because of typos
    • Externalizing strings

  • Use Gerrit to contribute to ECP

    We use Gerrit code review so you can easily contribute to ECP and get a review for your changes. Please make sure that all your commits refer to a Bugzilla Bug.

  • Providing a patch to fix a bug or add a feature

    Please attach your patch to the bug report in question or create a new report using Bugzilla .

  • Contribute documentation

    If you found something that is not documented yet, please share your knowledge with other users. Please contact us to find the appropriate place to add your documentation.

Developer Resources for EMF Forms

Using Oomph we want to ease the setup pain for new contributors and committers of EMFForms. Here are the necessary steps:
  • Step 1: Download Oomph for your Platform
  • Step 2: Start Oomph
    • Update Oomph to the latest version if required (Simple Mode: Upper right corner or Advance Mode: left bottom)
    • Switch to Advanced Mode (Upper Right corner, Advanced Mode)
    • Drag and Drop / add ("+" in the upper right corner) this profile EclipseSource Profile
    • Select the 'EclipseSource IDE' entry and press next
    • Drag and Drop / add ("+" in the upper right corner) this setup file: EMFForms.setup into the top list. You should now see a new Entry at the top:

      Select the EMFForms entry and double click it, it should be BOLD now:
    • Press next and select the way you want Oomph to install your Eclipse and Workspace
    • Press Finish and let Oomph do the magic
  • Step 3: When Oomph finishes you still have to do some manual steps
    • Locate and open the ecp.target file in the org.eclipse.emf.ecp.target.rcp bundle imported from the repository. When it is resolved, set this definition as the target platform. This may take quite some time at first.
  • Step 4: Start developing using ECP

Framework Developer Documentation

Branching scheme

  • In our GIT Repositories, we are using the branching scheme described here.

  • We have a master branch containing the last release. A development branch containing the current development state and (hopefully) some feature branches containing new feature developments.

  • So if you are a developer, please commit on the develop branch in the future. If you develop a new feature, please open a feature branch and merge it back to the develop branch when your feature is finished. Don't commit on the master branch because it should only contain stable release versions merged there by the release engineer.

  • Branching Scheme

Profiling and Performance Debugging

  • YourKit is kindly supporting the EMF Forms open source project with its full-featured YourKit Java Profiler, which helped us to greatly improve EMFForms.