Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dtp-dev] Change to build process for Galileo (HEAD) development


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.datatools.connectivity.releng
HEAD/org.eclipse.datatools.enablement/releng/org.eclipse.datatools.enablement.releng
HEAD/org.eclipse.datatools.modelbase/releng/org.eclipse.datatools.modelbase.releng
HEAD/org.eclipse.datatools.sqltools/releng/org.eclipse.datatools.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.

Back to the top