Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "E4/Builds"

< E4
m (Submitting For the Build)
(Builds)
 
(52 intermediate revisions by 6 users not shown)
Line 1: Line 1:
= Builds =
 
  
== Integration Builds ==
+
 
 +
*** OLDER INFORMATION ***
 +
 
 +
 
 +
 
 +
= Builds  =
 +
 
 +
In e4 (like in the other projects under the Eclipse top-level project), we produce regular builds. One important kind of build is called ''integration build'' - usually run once a week to produce a version that is good enough to for purposes of integrating with other teams' work, and for self-hosting. Integration builds simply take what's in master, tag it, and generate a report of changes since the last build.
 +
 
 +
== Plug-in Versioning  ==
 +
 
 +
Our current stable build, [http://download.eclipse.org/e4/downloads/drops/S-0.15-201401152200/index.html e4 0.15], has all of our plugins marked as (Incubation) and new plugins should have a version 0.15.0.qualifier.
 +
 
 +
Now that master is open for our 0.16 stable stream we are following the standard [[Version Numbering]] guidelines. For example, for existing bundles:
 +
 
 +
*if you contribute bug fixes for a bundle, please increment the number to '''0.11.1.qualifier'''
 +
*if you change the public API or public classes (to add new API or to refactor API for the 0.16 release), please increment the number to '''0.12.0.qualifier'''
 +
 
 +
For new bundles, please mark them as '''0.16.0.qualifier'''
 +
 
 +
== Integration Builds ==
  
 
{| border="1"
 
{| border="1"
|+ E4 Integration Builds
+
|+ E4 Integration Builds  
 
|- align="left"
 
|- align="left"
! Date !! Time !! Frequency
+
! Date  
 +
! Time  
 +
! Frequency
 
|-
 
|-
| Thursdays
+
| every day
| 19:30 EST
+
| 22:00 EST  
| Weekly
+
| Daily
 
|}
 
|}
  
 
[http://download.eclipse.org/e4/downloads/ e4 Downloads Page]
 
[http://download.eclipse.org/e4/downloads/ e4 Downloads Page]
  
== Submitting For the Build ==
+
== Submitting For the Build ==
  
Teams should use the "Eclipse Releng Tools" to update their releng project for each build.  The releng tools can be installed from the update sites already included in 3.5.
+
In General:
  
'''Tags''': tags should be of the form v<date>, so v20081120 or v20081120-1300
+
'''Checking in code''': The checkin comment should at a minimum include "bug #", and preferably be of the form "bug # summary"
  
'''Versioning Plugins''': Teams should try and follow the standard versioning rules posted at [[Version_Numbering]].  If you need to copy over an existing eclipse project to make changes, please increment the minor number by 100.  i.e. 3.5.0 becomes 3.105.0.  When you need to break API, then update the major number. i.e. 3.105.0 becomes 4.0.0
+
For the build:  
  
'''Checking in code''': The checkin comment should at a minimum include "bug #", and preferably be of the form "bug # summary"
+
'''Tool''': we don't need to use the releng tool to submit for builds, that happens automatically.
  
== Build Infrastructure ==
+
[[Image:Install-Releng-Tools.png]]
  
The main build project is in e4/releng/org.eclipse.e4.builder.  We build using the start.sh script on build.eclipse.org. 
+
Releng tools are in the eclipse updates site now that Luna is released and can be installed from the director app as well:
  
We run the PDE builder using org.eclipse.e4.builder/builder/general as the ${builder} property, and usually build the org.eclipse.e4.master feature (which includes all the other features, tests, and examples). Have a look at the arguments in the buildE4general launch config.
+
eclipse/eclipse -application org.eclipse.equinox.p2.director \
 +
-consoleLog -noSplash \
 +
-repository http://download.eclipse.org/eclipse/updates/4.4 \
 +
-installIU org.eclipse.releng.tools.feature.group
  
TODO:
 
*sign the build.
 
*generate a zip with 2 projects,  org.eclipse.swt.e4 and org.eclispe.swt.e4.jcl, that can be imported into a workspace in an eclipse with the ActionScript tools installed.
 
*Work with the [[Common_Build_Infrastructure]] to host our builds.
 
  
= CVS =
+
'''Tags''': tags should be of the form v&lt;date&gt;, so v20081120 or v20081120-1300
  
The resources, ui, and swt teams now have plugins in their team area in the e4 project. Our project is under :pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse
+
'''Versioning Plugins''': Teams should try and follow the standard versioning rules posted at [[Version Numbering]]. If you need to copy over an existing eclipse project to make changes, please increment the minor number by 100. i.e. 3.5.0 becomes 3.105.0. When you need to break API, then update the major number. i.e. 3.105.0 becomes 4.0.0
  
 +
== Build Infrastructure  ==
  
== Resources ==
+
We run our builds on build.eclipse.org (an x86_64 linux machine) with a local userid, '''e4Build'''.
  
The resources CVS structure is:
+
=== Build Scripts  ===
  
*e4
+
The main build project is in <code>e4/releng/org.eclipse.e4.builder</code>. It contains the <code>masterBuild.sh</code> script that can be modified to run a test build or a real build (tagged and uploaded to download.eclipse.org). Our build is now controlled by maven/tycho and the pom.xml.
**org.eclipse.e4.resources
+
***bundles
+
***doc
+
***examples
+
***features
+
***tests
+
**releng
+
***org.eclipse.e4.resources.releng
+
  
The '''org.eclipse.e4.resources.releng''' contains the map files for building as well as Team Project Sets that should be used for checking out the projects to be worked on.
+
It also contains the old PDE build directory, <code>e4/releng/org.eclipse.e4.builder/builder/general</code>, that used to build our master feature.
  
Resources currently has 4 features.  2 feature patches for the plugins (one for rcp, one for platform), a feature that contains the 2 patches, and a test feature for the tests.
+
<br>
  
=== Setup/Restrictions ===
+
=== Machine Setup ===
  
Resources can currently update a 3.5 SDK I build and run.
+
To run the tests, we need a virtual X server on&nbsp;:8:
  
== UI ==
+
Xvfb&nbsp;:8 -screen 0 1280x1024x24 -auth auth.cfg
 +
metacity --display=:8.0 --replace --sm-disable
  
The UI CVS structure is:
+
Where auth.cfg contains at least:  
  
*e4
+
localhost
**org.eclipse.e4.ui
+
***bundles
+
***doc
+
***examples
+
***features
+
***tests
+
**releng
+
***org.eclipse.e4.ui.releng
+
  
The '''org.eclipse.e4.ui.releng''' contains the map files for building as well as Team Project Sets that should be used for checking out the projects to be worked on.
 
  
UI currently has one main feature for the modelled workbench and one feature for the demos. The build master feature, org.eclipse.e4.master, is also in UI for now.
+
=== Setup ===
  
=== Setup/Restrictions ===
+
In [http://git.eclipse.org/c/e4/org.eclipse.e4.releng.git/tree/org.eclipse.e4.builder/scripts/buildCBI.sh buildCBI.sh]
  
UI currently requires EMF 2.4.1 or 2.5.0 in installed on 3.5 in order to run.  They can be installed from the update site included with the I builds.
+
We have a set of variables that are needed in order to make the system go.  
  
== SWT ==
+
{| border="1"
 +
|-
 +
! Variable
 +
! Comments
 +
|-
 +
| writableBuildRoot
 +
|
 +
The base directory that contains all build related files except the JREs.
  
The SWT CVS structure is:
+
|-
 +
| relengBranch
 +
|
 +
The branch to check out the releng project (this contains subprojects that contain all our repository to branch mapping). Default is master.
  
*e4
+
|-
**org.eclipse.e4.swt
+
| arch
***bundles
+
|
***doc
+
Build architecture, currently x86 or ppc.
***examples
+
***features
+
***tests
+
**releng
+
***org.eclipse.e4.swt.releng
+
  
The '''org.eclipse.e4.swt.releng''' contains the map files for building as well as Team Project Sets that should be used for checking out the projects to be worked on.
+
|-
 +
| builddate
 +
|
 +
Build date in the format YYYYMMDD, ex: 20090625
  
SWT has 2 features, one for the ActionScript tools and another for the ActionScript tests.
+
|-
 +
| buildtime
 +
|
 +
Build time in the 24 hour clock format HHMM, ex: 1930
  
=== Setup/Restrictions ===
+
|-
 +
| eclipseIBuild
 +
|
 +
The ID of the eclipse build we use as a target platform. With the changes to use a zipped repo for the eclipse SDK, this ID is only used to generate URLs on the download page. It should potentially be used to collect the correct p2 repo for the eclipse/equinox SDK.
  
To update to the ActionScript tools you must first download and install the Open Source Flex SDK.
+
|-
 +
| javaHome
 +
|
 +
The java that is used to launch JVMs from the masterBuild.sh script.
  
'''Setup Flex environment:'''
+
|-
 +
| buildTimestamp
 +
|
 +
The date and time together: 20090625-1930
  
# Download and install the Adobe Open Source Flex SDK (available from http://opensource.adobe.com). NOTE: The path where you install the Flex SDK must contain no spaces. This is due to a bug in FCSH.
 
# update your eclipse.ini file and add another line at the end, -Dflex.sdk=&lt;your path to the installed sdk&gt;
 
  
Then you can update to the ActionScript tools.  To work on the tools themselves, you must also set the FLEX_SDK classpath variable in Window>Preferences>Java>Build Path>Classpath Variables to point to the sdk location.
+
|-
 +
| writableBuildRoot
 +
|
 +
|}
 +
 
 +
== Hudson Builds ==
  
 +
Some jobs were setup on Hudson HIPP instance at http://hudson.eclipse.org/e4 .
  
To work on org.eclipse.swt, org.eclipse.swt.e4.jcl, org.eclipse.swt.e4.examples, and org.eclipse.swt.examples you need to create a Linked Resource variable, WORKSPACE, that points to your current workspace root, from Window>Preferences>General>Workspace>Linked Resources. Also if .classpath_flex exists it must be copied to the .classpath entry.
+
For an active repo, I believe we should have 3 jobs:
 +
* <repoName> which builds the latest commit from master (checked hourly) and publish the output to http://download.eclipse.org/e4/snapshots/<repoName>
 +
* <repoName>-Gerrit which builds incoming Gerrit patches to vote +1 or -1 on them
 +
* <repoName>-Sonar which builds latest commit from master (checked weekly) and publish quality reports on SonarQube ( http://dev.eclipse.org/sonar )

Latest revision as of 11:36, 19 February 2015


      • OLDER INFORMATION ***


Builds

In e4 (like in the other projects under the Eclipse top-level project), we produce regular builds. One important kind of build is called integration build - usually run once a week to produce a version that is good enough to for purposes of integrating with other teams' work, and for self-hosting. Integration builds simply take what's in master, tag it, and generate a report of changes since the last build.

Plug-in Versioning

Our current stable build, e4 0.15, has all of our plugins marked as (Incubation) and new plugins should have a version 0.15.0.qualifier.

Now that master is open for our 0.16 stable stream we are following the standard Version Numbering guidelines. For example, for existing bundles:

  • if you contribute bug fixes for a bundle, please increment the number to 0.11.1.qualifier
  • if you change the public API or public classes (to add new API or to refactor API for the 0.16 release), please increment the number to 0.12.0.qualifier

For new bundles, please mark them as 0.16.0.qualifier

Integration Builds

E4 Integration Builds
Date Time Frequency
every day 22:00 EST Daily

e4 Downloads Page

Submitting For the Build

In General:

Checking in code: The checkin comment should at a minimum include "bug #", and preferably be of the form "bug # summary"

For the build:

Tool: we don't need to use the releng tool to submit for builds, that happens automatically.

Install-Releng-Tools.png

Releng tools are in the eclipse updates site now that Luna is released and can be installed from the director app as well:

eclipse/eclipse -application org.eclipse.equinox.p2.director \
-consoleLog -noSplash \
-repository http://download.eclipse.org/eclipse/updates/4.4 \
-installIU org.eclipse.releng.tools.feature.group


Tags: tags should be of the form v<date>, so v20081120 or v20081120-1300

Versioning Plugins: Teams should try and follow the standard versioning rules posted at Version Numbering. If you need to copy over an existing eclipse project to make changes, please increment the minor number by 100. i.e. 3.5.0 becomes 3.105.0. When you need to break API, then update the major number. i.e. 3.105.0 becomes 4.0.0

Build Infrastructure

We run our builds on build.eclipse.org (an x86_64 linux machine) with a local userid, e4Build.

Build Scripts

The main build project is in e4/releng/org.eclipse.e4.builder. It contains the masterBuild.sh script that can be modified to run a test build or a real build (tagged and uploaded to download.eclipse.org). Our build is now controlled by maven/tycho and the pom.xml.

It also contains the old PDE build directory, e4/releng/org.eclipse.e4.builder/builder/general, that used to build our master feature.


Machine Setup

To run the tests, we need a virtual X server on :8:

Xvfb :8 -screen 0 1280x1024x24 -auth auth.cfg
metacity --display=:8.0 --replace --sm-disable 

Where auth.cfg contains at least:

localhost


Setup

In buildCBI.sh

We have a set of variables that are needed in order to make the system go.

Variable Comments
writableBuildRoot

The base directory that contains all build related files except the JREs.

relengBranch

The branch to check out the releng project (this contains subprojects that contain all our repository to branch mapping). Default is master.

arch

Build architecture, currently x86 or ppc.

builddate

Build date in the format YYYYMMDD, ex: 20090625

buildtime

Build time in the 24 hour clock format HHMM, ex: 1930

eclipseIBuild

The ID of the eclipse build we use as a target platform. With the changes to use a zipped repo for the eclipse SDK, this ID is only used to generate URLs on the download page. It should potentially be used to collect the correct p2 repo for the eclipse/equinox SDK.

javaHome

The java that is used to launch JVMs from the masterBuild.sh script.

buildTimestamp

The date and time together: 20090625-1930


writableBuildRoot

Hudson Builds

Some jobs were setup on Hudson HIPP instance at http://hudson.eclipse.org/e4 .

For an active repo, I believe we should have 3 jobs:

  • <repoName> which builds the latest commit from master (checked hourly) and publish the output to http://download.eclipse.org/e4/snapshots/<repoName>
  • <repoName>-Gerrit which builds incoming Gerrit patches to vote +1 or -1 on them
  • <repoName>-Sonar which builds latest commit from master (checked weekly) and publish quality reports on SonarQube ( http://dev.eclipse.org/sonar )

Back to the top