Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 272857 - Transition to Galileo Bucky Builder
Summary: Transition to Galileo Bucky Builder
Status: RESOLVED FIXED
Alias: None
Product: Community
Classification: Eclipse Foundation
Component: Cross-Project (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: David Williams CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-20 03:03 EDT by David Williams CLA
Modified: 2009-04-27 13:57 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 David Williams CLA 2009-04-20 03:03:21 EDT
This bug is to document specifics work required to transition to the builder initially described in bug 270058 and further documented in 
http://wiki.eclipse.org/Buckminster_Galileo_Builder

The old builder will be left in place, at least until we fully transition to new one. 

The primary "working area" for these new builds will be in 
/shared/galileo/buckyBuild

I've created a new project in same location as o.e.galileo.build
/cvsroot/callisto 
named
org.eclipse.galileo.tools 
that contains some initial bash scripts to run the build on build.eclipse.org. 

One of the first items needed it to run those scripts from the Hudson builder, so that they can be easy to start, etc. From what I understand, this would be best done by "translating" the shell scripts to ant tasks. 

A second task is to create/change the "build results page" to fit with the new build and locations. 

Note, for now the o.e.galileo.build project will be left "as is", but eventually a few of the files in there will eventually no longer be needed (such as the "generate.xml" file, the map files, etc.).
Comment 1 David Williams CLA 2009-04-22 16:11:58 EDT
Just so you can see progress ... 

https://build.eclipse.org/hudson/view/BuckyBuild/

I've added callisto-dev, Gabe, and Thomas to have the ability to configure/run/delete jobs, etc. General public should only have "read" access. 

The index.php page (even though wrong in many ways right now :) 
can be seen at 
http://build.eclipse.org/galileo/buckyBuild/buildresults/  

The categories and features can be seen via update manager by using
http://build.eclipse.org/galileo/buckyBuild/buildresults/mirror
[but, remember, can not actually use that for updates, since mirrors for that site are spec'd for that site]. 

I figure next I'll work on a "promoteToStaging" job, then maybe on that index page. 

Oh, and need to check fail-mail and make sure it is pointing to right log locations, etc. 

Thomas, once your next version of Buckminster-Builder is ready, you should just be able to push the "update builder" button and have in "installed" in the version of the platform we are using (still using the I20090407-1430 version right now). 

To update the platform is still a shell script command ... and figure I'd leave it that way, since rarely needs to be done, and since you have to provide it input anyway (give it the URL you want installed). 

Off hand, I'd say we can turn on the "production" flag on Friday? 

Maybe experiment with triggering builds if CVS changes? 

Comment 2 Thomas Hallgren CLA 2009-04-23 10:20:55 EDT
(In reply to comment #1)
> Thomas, once your next version of Buckminster-Builder is ready, you should just
> be able to push the "update builder" button and have in "installed" in the
> version of the platform we are using (still using the I20090407-1430 version
> right now). 
> 
I tried this, but no go. It complains that the top feature is in conflict with itself, i.e. the director doesn't seem to recognize that it's an update. I even tried to add an -uninstallIU first. When I do that, it claims that it uninstalls the *new* feature. I.e. the one that just failed to install on my previous attempts.

The install that follows still complains about the conflict. See log:

https://build.eclipse.org/hudson/view/BuckyBuild/job/updateBuckyBuilder/6/console

Not sure how to move forward with this. I would recommend that we start fresh with a new Eclipse installation.
Comment 3 Thomas Hallgren CLA 2009-04-23 11:45:02 EDT
I moved prereqs/eclipse to prereqs/eclipse.old and installed a new one from /eclipse/downloads/drops/I20090421-0930/eclipse-SDK-I20090421-0930-linux-gtk-ppc.tar.gz. After that, the update succeeded.
Comment 4 Thomas Hallgren CLA 2009-04-23 12:03:54 EDT
The current build doesn't seem to honor the exit code from the application. I think anything but zero should cause the build to fail.
Comment 5 David Williams CLA 2009-04-23 12:56:40 EDT
(In reply to comment #4)
> The current build doesn't seem to honor the exit code from the application. I
> think anything but zero should cause the build to fail.
> 

Agreed. I committed fix to CVS ... but appeared you were editing the build.xml file on build.eclipse.org ... so I won't update until hear from you. 

FYI, forgot to mention, to refresh the org.eclipse.galileo.tools directory with latest in CVS, you can execute getRelengTools.sh from that same directory, org.eclipse.galileo.tools. As with platform, not sure we need to automate that, but if you think we do we can. 




Comment 6 David Williams CLA 2009-04-23 22:09:36 EDT
(In reply to comment #5)
> (In reply to comment #4)

> FYI, forgot to mention, to refresh the org.eclipse.galileo.tools directory with
> latest in CVS, you can execute getRelengTools.sh from that same directory,
> org.eclipse.galileo.tools. As with platform, not sure we need to automate that,
> but if you think we do we can. 
> 

I changed my mind about the "bootstrap" job, after remembering there seems to be good job-specific security controls ... so you can bootstrap the HEAD version of these control files from the Hudson build page ... well, me and Thomas can. If others need it, we'll change security settings then. 
Comment 7 David Williams CLA 2009-04-24 04:26:59 EDT
I've turned on "auto detect" in the Hudson BuckyBuilder. 
Changes in HEAD of org.eclipse.galileo.build will be detected every 15 minutes, at 0, 15, 30, 45 minutes past the hour. 

If a build fails, it will be retried at 10 minute intervals, up to 5 times. Remember, some builds will fail because a change is needed on the projects update site .. and will not necessarily result in another change in the o.e.g.build project. 

We can tweak these intervals once we get more experienced with daily workflow. 

Comment 8 David Williams CLA 2009-04-24 12:41:37 EDT
Another task which I've just realized is very important, is to update the wiki documents to point to the correct places for what projects need to do to contribute to a build. The actual contribution part is exactly the same, but the rest of the document at 
http://wiki.eclipse.org/Galileo/Build
should be marked as "deprecated". 

And some 'cross links' provided. 

I'll work on that this afternoon. 

Once up to date, I would like to turn on -production flag so mail is sent out on failures, and I'll announce "open for business" on cross-project ... unless anyone thinks otherwise? 

Comment 9 Thomas Hallgren CLA 2009-04-24 12:55:05 EDT
(In reply to comment #8)
> Once up to date, I would like to turn on -production flag so mail is sent out
> on failures, and I'll announce "open for business" on cross-project ... unless
> anyone thinks otherwise? 
> 
I'm just uploaded a new version with some major improvements. I think it would be worth while to run this version an iteration or two, just to verify that everything is OK.

The news are:
1. If trusted contributions are used, metadata is always copied to get all categories right. Only the artifact repository is a mirror (in a folder now renamed to aggregate).

2. A new option -packedStrategy <strategy>
where strategy is one of copy, unpack, unpackAsSibling, verify, skip (documentation on wiki forthcoming).

3. Bug 273530 probably fixed.
Comment 10 David Williams CLA 2009-04-24 13:52:58 EDT
(In reply to comment #9)
> (In reply to comment #8)

> I'm just uploaded a new version with some major improvements. I think it would
> be worth while to run this version an iteration or two, just to verify that
> everything is OK.
> 

That sounds good. And then I'll update the "promoteToStaging" script (to use 'aggregate' instead of 'mirror', and then should probably wait a while to let that propagate some before pointing people to it. 

Plus, I've heard EclipseLink project is about ready to contribute, so maybe wait to see if that happens this afternoon ... so maybe will wait till Monday morning for broad announcement, so it doesn't "get lost" over the weekend. 

Comment 11 Thomas Hallgren CLA 2009-04-24 14:31:29 EDT
Documentation updated, Hudson updated, and a new build is in progress. This build runs with -packedStrategy verify which means that the packed artifacts will be copied verbatim and then unpacked. The result of the unpack is however discarded so the resulting site should be much smaller then before.

I took the liberty of adding some missing repo attributes to features in the ep.build and equinox.build. The builder will complain about that too now.

B.t.w. is there any particular reason we don't have linux.gtk.x86_64 as one of the configurations?
Comment 12 David Williams CLA 2009-04-24 18:27:27 EDT
Thomas, I think something is amiss ... if I point an Eclipse Update to the build machine site, at 
http://build.eclipse.org/galileo/buckyBuild/buildresults/
I get a "no repository found" message. 
Should that "content.jar" be named "compositeContent.jar"? 


(In reply to comment #11)
> Documentation updated, Hudson updated, and a new build is in progress. This
> build runs with -packedStrategy verify which means that the packed artifacts
> will be copied verbatim and then unpacked. The result of the unpack is however
> discarded so the resulting site should be much smaller then before.
> 

Cool ... that coves all the bases. :) 

> B.t.w. is there any particular reason we don't have linux.gtk.x86_64 as one of
> the configurations?
> 

No. I suspect got left out accidentally in some editing (by me). 
The intent was to include all that are required by the EPP project. 
But, I think with your builder ... we are just verifying ... so should we do them "all"? What happens if a project does not support all configurations? (that is, they have platform specific code, but not for all platforms. 
Comment 13 Thomas Hallgren CLA 2009-04-24 18:30:44 EDT
(In reply to comment #12)
> Thomas, I think something is amiss ... if I point an Eclipse Update to the
> build machine site, at 
> http://build.eclipse.org/galileo/buckyBuild/buildresults/
> I get a "no repository found" message. 
> Should that "content.jar" be named "compositeContent.jar"? 
> 
No, but you should use:

http://build.eclipse.org/galileo/buckyBuild/buildresults/final/

Comment 14 Thomas Hallgren CLA 2009-04-24 18:37:01 EDT
Looks good in my update manager, aside from the fact that all platform features are missing. I know why and I'm on it...
Comment 15 David Williams CLA 2009-04-24 18:44:24 EDT
(In reply to comment #13)
> (In reply to comment #12)
> > Thomas, I think something is amiss ... if I point an Eclipse Update to the
> > build machine site, at 
> > http://build.eclipse.org/galileo/buckyBuild/buildresults/
> > I get a "no repository found" message. 
> > Should that "content.jar" be named "compositeContent.jar"? 
> > 
> No, but you should use:
> 
> http://build.eclipse.org/galileo/buckyBuild/buildresults/final/
> 

yep, realized that shortly after ... too many versions, too many bookmarks :) 
Comment 16 David Williams CLA 2009-04-24 18:57:33 EDT
(In reply to comment #14)
> Looks good in my update manager, aside from the fact that all platform features
> are missing. I know why and I'm on it...
> 

Not sure if related, or even a problem, but a change. I could see "eclipselink" in one of the categories, (EclipseRT). It is listed in that category, but is not actually listed as a "contribution" yet. (Because, I think, there's a but in their update site, so would fail). 

That used to work by simply not trying to mirror the ommitted contribution, and also not listing in the categories. 

It is ok with me if it does, I guess, but it was a handy way to omit something temporarily. 

I'm mostly documenting this so we will all know how it's supposed to work. 
Or, would you consider current behavior a bug? 
 
Comment 17 Thomas Hallgren CLA 2009-04-24 19:39:04 EDT
(In reply to comment #16)
> That used to work by simply not trying to mirror the ommitted contribution, and
> also not listing in the categories. 
> 
and it still does. The webtools contribution however, has this:

  <features id="org.eclipse.jpt.eclipselink.feature" version="2.2.0.v200902060000-438Z9oB55V6C7K5556" repo="//@repositories.0">
    <category href="galileo.build#//@categories.9"/>
  </features>

Omitting a contribution will make it vanish completely from the model. It will not participate at all (well, with the exception of capabilities since that's build completely aside from everything else).
Comment 18 Thomas Hallgren CLA 2009-04-24 20:26:47 EDT
I uploaded and installed a new version that takes care of the problem with lacking features from the trusted contributions. The result looks OK now and right now I don't have any more issues to deal with. So I'm all for flipping the -production switch now.
Comment 19 David Williams CLA 2009-04-27 13:57:06 EDT
I'm going to mark this as complete. If there's other or new issues, please open specific bugs. 

For what it's worth, I did try to run the old Galileo Builder and it seemed to mostly still work, until it got to the capabilities part of the build (I think). See

http://build.eclipse.org/galileo/build/galileo-I20090426-2023.log.txt

I've opened bug 273921 to remind me to remove the "galileo build" jobs from Hudson in a week or two. 

At that time, I suggest we also version the o.e.g.build project with a distinctive tag and then "clean it up" to remove the builder-specific parts (e.g. build.xml, and generate.xml).