Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » DTP » Change to build process for Galileo (HEAD) development
Change to build process for Galileo (HEAD) development [message #52700] Wed, 11 February 2009 23:57
Eclipse User
Originally posted by: brianf.sybase.com

Hi all!

We're making a small change to the build process to hopefully encapsulate
the manual changes at a better level for committers.

For the last few months, thanks to our fantastic build folks, we've had a
great build process that's helped us automate builds as much as possible.
That process has been relatively simple. When you deliver a change to a
branch or HEAD in CVS, you tag the plug-in with a unique date/time stamp
based on the time in Shanghai when you deliver the change (for example
v200902120110 for February 12, 2009 at 1:10am). Then, you simply go into the
org.eclipse.datatools.releng project and update the map file for the
plug-in's sub-project with that tag.

This has been pretty straightforward.

However, as we've brought additional committers and projects into the fold,
it became very apparent that the placement of the
org.eclipse.datatools.releng project at the top-level would be an issue for
those committers only working in one particular sub-project. For example, if
a committer is working solely in the Incubator project, they wouldn't have
permission to deliver changes to org.eclipse.datatools.releng unless they
also had committer rights to the Connectivity sub-project.

To correct this issue, we've changed the build process slightly now that our
Galileo (1.7) M5 milestone build is out the door.

Each sub-project now has its own "releng" project. (Incubator will also be
changed as soon as we finish up a committer election.) So now you have:

HEAD/org.eclipse.datatools.connectivity/releng/org.eclipse.d atatools.connectivity.releng

HEAD/org.eclipse.datatools.enablement/releng/org.eclipse.dat atools.enablement.releng

HEAD/org.eclipse.datatools.modelbase/releng/org.eclipse.data tools.modelbase.releng

HEAD/org.eclipse.datatools.sqltools/releng/org.eclipse.datat ools.sqltools.releng

These will work the same as the top-level org.eclipse.datatools.releng
project has been working for a while. The top-level releng project will be
used for features and orbit bundles, but this allows committers access to
the releng projects where they have committer rights.

So now when you deliver a change to a plug-in you're working on, the process
is as follows:

1) Make the change to the plug-in code.

2) Check-in the change in CVS

3) Tag the affected plug-in(s) with a tag corresponding to the current time
in Shanghai (http://www.timeanddate.com/worldclock/city.html?n=237) in the
format "vYYYYMMDDTTTT" - for example, v200902120110 for February 12, 2009 at
1:10am.

4) Go into the affected "releng" project for the affected plug-ins
(*.connectivity.releng for connectivity plug-ins, *.enablement.releng for
enablement plug-ins, and so on) and update the map file(s) with the tag
specified in step 3

5) Check in the map file changes to CVS.

Or you can use the Releng Tool mentioned here:
http://wiki.eclipse.org/Releng_Map_File_Tool

With the Releng Tool installed, the steps are simplified further:

1) Make the change to the plug-in code.

2) Check-in the change in CVS

3) Come up with a tag corresponding to the current time in Shanghai
(http://www.timeanddate.com/worldclock/city.html?n=237) in the format
"vYYYYMMDDTTTT" - for example, v200902120110 for February 12, 2009 at
1:10am.

4) Right-click on the project(s) you're going to release, select
Team->Release..., specify the map project associated with the plug-in(s) and
provide the tag you devised in step 3.

And that's it. Not too much different than before. Any cross-project changes
(for instance, if changes are made to SQL Dev and Modelbase plug-ins), will
need to have their map files updated separately.

The Incubator project will also be done as soon as Xiaoying has access to
that sub-project (when the committer election is completed).

Key notes... A) This only affects delivery to the projects in HEAD for
ongoing Galileo development, and B) changes to the 1.6.2 branch will need to
be tagged in the older method. Please keep this in mind as we wrap up
development to the 1.6.2 maintenance release. And C) The changes documented
in this message are in place for the HEAD stream as of today's build (the
dtp-sdk-1.7.0M6-200902110500.zip build).

Finally... Just as a reminder to those doing development in both the 1.6.2
and HEAD streams... please make sure that any deliveries to the older
(1.6.2) stream are tagged with a value less than those tagged to the HEAD
stream. For example, if the tag is v200902110600 for 1.6.2, it needs to be
v200902110605 or more for the HEAD stream (at least increment it by 5
seconds or more so when a plug-in comes through the update site, it knows
which version to grab) This will help us avoid some potentially hairy issues
with the build.

Thanks for your prompt attention to this change for Galileo development.

Please don't hesitate to ask questions if something is unclear.

--Fitz

Brian Fitzpatrick

Eclipse Data Tools Platform PMC Chair

Eclipse Data Tools Platform Connectivity Team Lead

Staff Software Engineer, Sybase, Inc.
Previous Topic:Status of the Ecore ODA Driver?
Next Topic:Change to build process for Galileo (HEAD) development
Goto Forum:
  


Current Time: Fri Oct 24 07:51:11 GMT 2014

Powered by FUDForum. Page generated in 0.01829 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software