Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 350102 - Update launcher releng scripts to support moving to git
Summary: Update launcher releng scripts to support moving to git
Status: RESOLVED FIXED
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: Launcher (show other bugs)
Version: 3.7   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: Juno M1   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 345479
  Show dependency tree
 
Reported: 2011-06-22 16:42 EDT by Andrew Niefer CLA
Modified: 2011-07-11 11:41 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Niefer CLA 2011-06-22 16:42:51 EDT
http://wiki.eclipse.org/Platform-releng/Juno_Git_Migration

The platform will be moving to git.  We shouldn't keep the launcher binaries in the git repository like we do in CVS.

The launcher compilation/releng setup needs to be modified to do something like the following:

1) Check out native sources
2) Compile binaries
3) Publish the binaries into a p2 repository
4) Normal releng build downloads binaries from the p2 repo and places them into the fragments/executable feature

Binaries can be published to a p2 repository by packaging them as root files to a feature.  This is for convenience only, these should not be considered as "real" root files to be installed into eclipse.  We should perhaps add some metadata to prevent people from installing these binary IUs.

The executable feature and launcher fragments can use custom build callbacks to get the binaries from the p2 repository and put them in the normal locations during the releng build.  This download can be accomplished via a simple wget or by using p2 tasks.
Comment 1 Andrew Niefer CLA 2011-06-22 16:51:19 EDT
Some details on (2)-(3).

Current compilation setup compiles the binaries on each platform and copies the results to a "resultsBaseFolder" which currently is a workspace on my workstation.  I then review the results and manually check into CVS those binaries which are affected by the chanes I'm compiling for.

The change is for the scripts to instead copy the binary results into a location on some build machine, probably the linux.x86 box.

The build will then get from SCM two new features
org.eclipse.equinox.executable.binaries
org.eclipse.equinox.launcher.binaries
The binary files are copied into these features as appropriate.

We then invoke PDE/Build's ant task <eclipse.gatherFeature/> to publish these features into a p2 repository which can then be scp'd to dev.eclipse.org.
Comment 2 Andrew Niefer CLA 2011-06-22 16:58:18 EDT
I have created the two new features, they are located under
/cvsroot/rt/org.eclipse.equinox/framework/releng
org.eclipse.equinox.executable.binaries
org.eclipse.equinox.launcher.binaries
Comment 3 Thomas Watson CLA 2011-06-23 08:47:43 EDT
As part of the git migration should we consider moving the launcher fragments out of org.eclipse.equinox.launcher?  I suppose a move like that would be best done after migrating to git since git handles moving folders/files around much better than CVS for preserving history.
Comment 4 Paul Webster CLA 2011-06-23 09:02:53 EDT
Just a note.  Other projects that need to create binaries and then consume them as part of their build steps (on hudson at eclipse.org) are considering maven.eclipse.org.

http://wiki.eclipse.org/Maven

PW
Comment 5 Andrew Niefer CLA 2011-07-11 11:41:05 EDT
Launchers have been moved to git.

Source is under
git://git.eclipse.org/gitroot/equinox/rt.equinox.framework.git

All the fragments have been moved from org.eclipse.equinox.launcher/[fragments|contributed]/ 
to be siblings of the launcher project.

All the binaries are stored in a git repo:
git://git.eclipse.org/gitroot/equinox/rt.equinox.binaries.git

Projects are just in the root of the repo and only contain binaries.

Each fragment and the executable feature all contain a customBuildCallbacks.xml script which will retrieve the binaries from the binary repo at build time.

The previous mentioned org.eclipse.equinox.executable.binaries and org.eclipse.equinox.launcher.binaries features were not necessary  and were not included in the move from cvs to git.