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.
Difference between revisions of "GEF/Contributor Guide"
(→Searching for Open Bugs/Enhancements) |
(Updated section on where to find the Git repositories) |
||
Line 1: | Line 1: | ||
− | == | + | ==Obtaining GEF Source Code == |
− | The | + | The complete source code base of the GEF project (with the exception of the web-site) is hosted at [http://git.eclipse.org/c/?ofs=50 http://git.eclipse.org]: |
− | The | + | * The GEF proper code base (Draw2d and GEF (MVC) 3.x as well as Zest 1.x ) can be found in the [http://git.eclipse.org/c/gef/org.eclipse.gef.git/ GEF Git repository] |
+ | * The [[GEF/GEF4 | GEF4]] provisional code base can be found in the [http://git.eclipse.org/c/gef/org.eclipse.gef4.git/ GEF4 Git repository]. | ||
+ | |||
+ | ''PLEASE NOTE: Up to now, the code base of the Zest2 provisional component is not hosted within the [http://git.eclipse.org/c/gef/org.eclipse.gef4.git/ GEF4 Git repository], but in its own [http://git.eclipse.org/c/gef/org.eclipse.zest.git/ Zest2 Git repository]. It is planned to migrate the code base into the GEF4 Git repository after the Juno release, when the two provisional components are unified (see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=372365 Bug #372365] for details).'' | ||
+ | |||
+ | === Checking out the code (Committers and Contributors)=== | ||
+ | |||
+ | TODO: document how to clone the repository using Git/EGit here. Further describe master, maintenance branch structure. you may check out all plug-ins located in the root folder. | ||
== Setting up the workspace == | == Setting up the workspace == |
Revision as of 06:21, 27 February 2012
Contents
Obtaining GEF Source Code
The complete source code base of the GEF project (with the exception of the web-site) is hosted at http://git.eclipse.org:
- The GEF proper code base (Draw2d and GEF (MVC) 3.x as well as Zest 1.x ) can be found in the GEF Git repository
- The GEF4 provisional code base can be found in the GEF4 Git repository.
PLEASE NOTE: Up to now, the code base of the Zest2 provisional component is not hosted within the GEF4 Git repository, but in its own Zest2 Git repository. It is planned to migrate the code base into the GEF4 Git repository after the Juno release, when the two provisional components are unified (see Bug #372365 for details).
Checking out the code (Committers and Contributors)
TODO: document how to clone the repository using Git/EGit here. Further describe master, maintenance branch structure. you may check out all plug-ins located in the root folder.
Setting up the workspace
Eclipse Target Platform
Target definition files are provided by the org.eclipse.gef.target
project, which includes a respective Eclipse SDK.
API Tooling
GEF uses PDE API tooling to guarantee proper handling of version numbering as well as API compatibility, so without definition of an API baseline you will see compile problems after having checked out the code. API-baselines are provided by the org.eclipse.gef.baseline
project. You may define them by going to Preferences -> Plug-in Development -> API Baselines, then choose to select "Add Baseline..." and point to the plugins
sub-folder of an API baseline located in the baselines project (note that the dialog browses the file system instead of the workspace, so you will have to point into the respective folder in your local Git repository).
Code Style (Formatting)
The GEF project uses the default built-in Eclipse formatter. Java-Editor Save-Actions are defined for each Java-nature plug-in of the GEF project to preserve formatting as well as organization of imports upon code changes.
Running a headless build locally
Beginning with GEF 3.8.0M5, GEF has adopted a Maven/Tycho-based build infrastructure (see bug #363394 for details). With the Maven Integration installed, the headless build that is executed by a Hudson job can also be executed in the local workspace. Make sure you have checked out all projects listed within the Team Project Set provided above. Then easily run the build by right-clicking the pom.xml
file located within the org.eclipse.gef.releng
project, and selecting 'Run As -> Maven install'. As a result of the build, an update-site will be created in the target
sub-folder of the org.eclipse.gef.repository
project.
Producing a patch
TODO
Committing code (Committers Only)
Comments
The GEF development team uses the following format for commit comments:
Format: [<bug-id>] <affected-branch> <contributor> <commit-date> <bug-summary>
Example: [213359] master crevells 071221 Make GEF's snapping and tools extensible to allow moving shapes with arrow keys
While the branch the code was committed to, the originator of the contribution and the commit date may possibly be redundant (since we are duplicating the information), but it has been found useful to easily figure out what the actual change was. Note that in case of a third-party contribution (patch) the name of the contributor and not the committer name will be included in the comment.
Handling of Bugs
When working with bugzillas, the following guidelines should be regarded.
Classifying Bugs
Despite selecting a component, a bugzilla may be classified to more precisely specify, what part of the GEF API is concerned. We use categories for this issue, which will be stated as a [<category_name>] prefix within the bugzilla's summary. The list of currently used categories is:
- General
- [TVT] - Translation Verification Tests
- Draw2d
- [GraphLayout]
- [Geometry]
- [Text]
- GEF
- [Command]
- [DnD]
- [EditPart]
- [EditPolicy]
- [Palette]
- [Print]
- [Tool]
Resolving Policy
When resolving bugzillas, it should be stated how the bug is verified. Preferably this is a JUnit test. Alternatively, the bugzilla will say that the defect can be reproduced in the Logic example and you can demonstrate the fix working in the logic example (or other examples using GEF). If the bug is trivial or obvious and does not require a test, we can just state this in the Bugzilla too.