Jump to: navigation, search

Difference between revisions of "Jubula/JubulaContribGuide"

(Maven Build Sequence)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{:DocumentationGuidelines/DraftHeader}} {{Jubula}}  
+
{{Jubula}}  
  
 
= Development IDE Configuration =
 
= Development IDE Configuration =
  
Jubula has Java 5.0 and Eclipse Platform 3.6 as minimum requirements, so dependencies to newer Java and platform versions must be avoided.
+
The Jubula ITE has Java 7 and Eclipse Platform 4.2, the RC code Java 1.4 as minimum requirements, so dependencies to newer Java and platform versions must be - especially for the RC part - avoided.
 
+
In order to minimize the inadvertent introduction of dependencies to Java 6.0, add both a Java5 and a Java 6 SDK to your  workspace. Do this in Window/Preferences -> Java/Installed JREs. Then configure your Execution Environments so that J2SE-1.5 refer to a Java 5 SDK and JavaSE-1.6 refer to a Java 6 installation.
+
 
+
To be completely on the safe side for reducing the risk of breaking Platform 3.6 compatibility, you would have to have a 3.6 IDE ready on which to check your code. In general, the effort for this is probably not justified, unless you are introducing major UI functionality. Just keep the minimum requirements in mind when using Platform API. Eclipse API's are usually marked with a @since tag.
+
 
+
If you are using OS X Snow Leopard, then Java 5 is hard to find. Using the search button in Eclipse will tell you that you have a 1.5.0 version of Java. That is probably a lie. It is just a link to 1.6.  Fortunately some nice guys have made a download that you may use.  Follow these [http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard instructions] to download and installl a real Java 5. You do '''not''' need to make it default. Downloading, unpacking and fixing the version links is enough.
+
  
 
= Obtaining Sources  =
 
= Obtaining Sources  =
Line 42: Line 36:
 
* [https://hudson.eclipse.org/hudson/job/jubula-juno/ JubulaJuno@hudson.eclipse.org]
 
* [https://hudson.eclipse.org/hudson/job/jubula-juno/ JubulaJuno@hudson.eclipse.org]
 
* [https://hudson.eclipse.org/hudson/job/jubula-kepler/ JubulaKepler@hudson.eclipse.org]
 
* [https://hudson.eclipse.org/hudson/job/jubula-kepler/ JubulaKepler@hudson.eclipse.org]
 +
* [https://hudson.eclipse.org/hudson/job/jubula-luna/ JubulaLuna@hudson.eclipse.org]
  
  
Line 49: Line 44:
 
== Maven Build Sequence ==
 
== Maven Build Sequence ==
 
* To run the build behind a firewall follow http://maven.apache.org/guides/mini/guide-proxies.html and for Tycho additionally pass proxy settings via system properties (https://issues.sonatype.org/browse/TYCHO-279): <tt>mvn <b>-DproxyHost=myproxy -DproxyPort=1080</b> ...</tt>
 
* To run the build behind a firewall follow http://maven.apache.org/guides/mini/guide-proxies.html and for Tycho additionally pass proxy settings via system properties (https://issues.sonatype.org/browse/TYCHO-279): <tt>mvn <b>-DproxyHost=myproxy -DproxyPort=1080</b> ...</tt>
 +
* On Linux install the following packages (currently only maven <=3.0.5 supports tycho correctly):
 +
  * Debian/Ubuntu: ant maven
 +
  * ArchLinux: apache-ant maven
  
 
Complete build sequence for a clean build (assuming $M2_HOME/bin is on the path and local Maven repository at ~/.m2/repository):
 
Complete build sequence for a clean build (assuming $M2_HOME/bin is on the path and local Maven repository at ~/.m2/repository):
Line 170: Line 168:
 
= Libraries from Orbit  =
 
= Libraries from Orbit  =
  
Jubula uses some bundles from Orbit. Please use the target platform defined in org.eclipse.jubula.project.configuration/target/definitions/indigo.target
+
Jubula uses some bundles from Orbit. Please use the target platform defined in org.eclipse.jubula.project.configuration/target/definitions/jubula.target
  
 
[[Category:Draft_Documentation]]
 
[[Category:Draft_Documentation]]

Latest revision as of 03:43, 19 December 2013

Template:Jubula

Development IDE Configuration

The Jubula ITE has Java 7 and Eclipse Platform 4.2, the RC code Java 1.4 as minimum requirements, so dependencies to newer Java and platform versions must be - especially for the RC part - avoided.

Obtaining Sources

Jubula is hosted in Git. Browse the repositories in gitweb.

There are several ways to obtain a copy of each repository:

From the command line

git clone http://git.eclipse.org/gitroot/jubula/org.eclipse.jubula.core.git jubula

From an installed EGit plugin

First, verify that the default repository folder as set on the main Git preference page is to your liking.

To compile properly you will also need libraries from Orbit.

Builds

Jubula builds run on build.eclipse.org via Hudson using

Hudson


Build Environment

  • Jubula is built using Maven 3 and Tycho.

Maven Build Sequence

 * Debian/Ubuntu: ant maven
 * ArchLinux: apache-ant maven

Complete build sequence for a clean build (assuming $M2_HOME/bin is on the path and local Maven repository at ~/.m2/repository):

[~/git/org.eclipse.jubula.core] $ ant
Buildfile: ~/git/org.eclipse.jubula.core/build.xml

cleanBuild:
<..>
BUILD SUCCESSFUL
Total time: 4 minutes 1 second

Running the command above generates a p2 repository under org.eclipse.jubula.site/target/repository/, which you can use to install it into your Juno Eclipse.

Publishing

The Jubula builds are published on download.eclipse.org (you need SSH access to the machine to publish. At the moment, Markus Tiede has publishing privileges).


Bugs

Links

Trends Jubula
Open Bugs and Enhancements Open
Assigned Bugs and Enhancements Assigned
All Bugs and Enhancements All
Lists Jubula
Open Bugs Open
Open Enhancements Open
Assigned Bugs and Enhancements Assigned

Documentation

The Jubula project uses LaTeX for it's documentation base. The Online Help is currently build off site and committed to the git repository on demand.

If anyone knows a way to port lots of LaTeX documentations to a system which runs at build.eclipse.org and support Eclipse Online Help and PDF as output please step forward.

The aim is to generate new documentation every month or so (or just on demand). If you're making big changes or want the documentation refreshed, please let us know on the jubula-dev mailing list.

Tests

Jubula is tested with Jubula. For the time being these tests run on an infrastructure at BREDEX.

Website

The Jubula website is located in a git repository on the Eclipse Foundation's servers. Browse the repository in www.eclipse.org/jubula.git.

There are several ways to obtain a copy of each repository:

From the command line

git clone http://git.eclipse.org/gitroot/www.eclipse.org/jubula.git

From an installed EGit plugin

First, verify that the default repository folder as set on the main Git preference page is to your liking.


Contributing Patches

Please create a Bugzilla entry with a patch attached. We are planning to move to gerrit for contributuions as soon as it is generally available at eclipse.org


Granularity of Changes

  • Make small commits, as small as reasonable. This makes them easy to review.
  • Each commit should have a commit message that explains very clearly what the commit sets out to achieve (unless this is abundantly clear from the code itself, which is basically only the case for trivial patches). Also, when you fix a bug then report which bug you fix. When there are deeper reasons for doing things the way the commit does, then explain these as well. This all is for the reviewers and yourself: the context of the commit is completely clear.
  • Do not mix concerns in commits: have a commit do a single thing. This makes them reviewable 'in isolation'. The purpose of the commit is clear and can be understood easily by the reviewers and yourself.
  • Do not break the build and tests for any commit: this is very important for bug hunting.
  • Split your work into multiple smaller pieces of work (when possible) and implement each of these pieces in a series of commits.
  • A series of commits should work towards a 'feature' in a clear way and only 'enable' the feature in the last commit of the series.
  • In a series of commits first lay the groundwork and then build on that towards the feature.
  • Do not mix concerns in branches: when you encounter a bug while working on something then create a new branch to fix the bug. If your work depends on the bug being fixed then rebase your work on that new branch.

Commit message guidelines

  • The commit message header should fit on one line and should start with an uppercase letter
  • The commit message have newline characters after every 60-70 characters.
  • A "Signed-off-by" should be added to the end of the commit message (see example below).
  • The first sentence should be a clear and concise description about the change.
  • Enter a newline before providing a more detailed description about the change.
Fix the commit dialog to respect the workbench's selection

Originally, the commit dialog would automatically check off all
files in the dialog. This behaviour contradicts a user's expectation
because their selection in the workbench is completely ignored. The
code has been corrected to only preselect what the user has actually
selected.

Bug: 12345
Change-Id: I71ac4844ab9d2f848352eba9252090c586b4146a
Signed-off-by: Your Name <your.email@example.org>

Test before submitting

  • Contact the Jubula team to have the tests run on your behalf.
  • Pay attention to the Java and Eclipse SDK baselines. Jubula requires only Java5 and Eclipse 3.6. You cannot use API's that are newer. We often see breakages because Java 6 API's are used.

Libraries from Orbit

Jubula uses some bundles from Orbit. Please use the target platform defined in org.eclipse.jubula.project.configuration/target/definitions/jubula.target