eclipse-ocl / org.eclipse.ocl

Eclipse Public License 2.0
0 stars 0 forks source link

[releng] Propagate some parameters from the Core build to the Tools one #914

Closed eclipse-ocl-bot closed 5 hours ago

eclipse-ocl-bot commented 5 hours ago

| --- | --- | | Bugzilla Link | 380170 | | Status | CLOSED FIXED | | Importance | P3 normal | | Reported | May 21, 2012 14:28 EDT | | Modified | May 27, 2014 09:52 EDT | | Reporter | Adolfo Sanchez-Barbudo Herrera |

Description

In some circumstances is desirable that the core build propagates (after finishing) some parameters to the Tools one (before starting).

This jobs chaining was introduced basically to make the Tools N-build run after the automatically executed Core N-builds finishes.

However, when manually launching some builds is desirable that some parameters are passed between jobs, for instance, the own build.type, so that a Core I-build kicks out a Tools I-build.

Study the different desire cases, and find a proper way to make this propagation happen (if possible).

eclipse-ocl-bot commented 5 hours ago

By Adolfo Sanchez-Barbudo Herrera on Aug 27, 2012 12:48

IMO, This is the desired situation

a) Nightly-Build.

b) Interim-Build.

c) Stable-Build.

d) Releases-Build.

e) Maintenance-build.

I see a couple of problems:

  1. To make b) properly work. The tools.rmap file needs to be adjusted so that it uses the last successful generated OCL Core p2 repository. Otherwise, an intermediate "publishing" step would be required.
  2. It looks like that sometimes (case a) and b) ) we would want to run automatically the Tools build and some other times (i.e. c)) we don't want to do it. The worst of this requirement, is that it depends on a job paramater and, therefore, it doesn't look to be possible to accomplish.
  3. Since we use the M-build for both maintenance "Nightly builds" and RC (Stable builds) I don't see an uniform solution based on the own build type. Do we require an extra letter for that kind of Maintenance Stable build?. Solving this doesn't sound to be trivial from the releng point of view, since downloads area artifacts and p2 repositories are placed/located using this build.type information)

Firstly, let's forget problem 3 and focus on setting the releng stuff to have a) b) and c) properly working:

  1. The current releng configuration:\ a) properly works.\ b) and c) wouldn't work because the Tools build automatically runs as an N-build.\

  2. Making the Tools build receive the jobs parameter used for the Core build\ a) would properly work.\ b) would properly work (Taking into account that the trivial problem 1. needs to solved).\ c) would not properly work, since an automatic Tools S-build would be run when we want to wait until +3 time frame to run it (problem 2).\

  3. Changing the trigger of the builds so that Core and Tools build automatically check the Source Code repository for example at 0:00 am and 1:00 am respectively. The other change is removing the automatic Tools build run when the core one finishes.\ a) would properly work and now it's a real Nightly build. Likewise, we don't make the build run several times per day when we are doing changes along the day.\ b) would partially work, since we don't have an automatic Tools build kicked out. We would have to manually do it (similar to what we do with the S-one).\ c) would properly work.\ \ I think that 3.b) is the minor of our problems, so I'm inclined to adopt the solution 3.

Any other ideas, of course, are welcome.

Cheers,\ Adolfo.

eclipse-ocl-bot commented 5 hours ago

By Ed Willink on Aug 28, 2012 04:13

? M-build is like an I-build rather than an N-build ?

I'm not entirely clear what your recommendation is, but it seems clear that without some magic job parameter passing technology, the automatic tools build is bad.

So let's get rid of the automated daisy chain build, and as you suggest, just have the tools build poll SCM at a distinctive schedule.

This works for SCM triggers except that occasionally Hudson may get in a mess and missdchedule; Nothing new there. A build failure is not a failure till it happens twice.

For manual builds, we know what we're doing and can do it.

eclipse-ocl-bot commented 5 hours ago

By Adolfo Sanchez-Barbudo Herrera on Aug 28, 2012 04:38

(In reply to comment #2)

? M-build is like an I-build rather than an N-build ?

M-build = e) Maintenance-build. It's like an N-build because it's configured to automatically run whenever a commit is detected in the source code repository. It differs from an N-build that it uses the maintenance/Rx_y branch instead

As commented previously, our build process has some lacks concerning the maintenance RC builds, since we don't have an specific build.type for them. Therefore,

I'm not entirely clear what your recommendation is, but it seems clear that without some magic job parameter passing technology, the automatic tools build is bad.

There is some job parameter passing mechanisms. However, it doesn't suffice giving our build process. What we would really need is some mechanism to discriminate the trigger of the second build (Tools) in base of the parameter values of the first one (Core).

So let's get rid of the automated daisy chain build, and as you suggest, just have the tools build poll SCM at a distinctive schedule.

Yes, that is my recommendation, giving our current particular build process.

This works for SCM triggers except that occasionally Hudson may get in a mess and missdchedule; Nothing new there. A build failure is not a failure till it happens twice.

For manual builds, we know what we're doing and can do it.

This also avoids us stopping the automatically run Tools build by hand (which produces an annoying build failure).

Cheers,\ Adolfo.

eclipse-ocl-bot commented 5 hours ago

By Ed Willink on Aug 28, 2012 04:57

(In reply to comment #3)

(In reply to comment #2)

? M-build is like an I-build rather than an N-build ?

M-build = e) Maintenance-build. It's like an N-build because it's configured to automatically run whenever a commit is detected in the source code repository.

Hmm. Can't find an Eclipsepedia definition of M-build.

After XXXSR0... the XXX build branch is changed from 'master' to maintenance/R... and the RMAP is changed to pickup releases/maintenance repos.

An N-build polls SCM as before and so builds the latest maintenance automatically.

An I-build is manually triggered so builds the latest maintenance automatically.

Therefore an M-build is redundant unless it replaces an S-build.

eclipse-ocl-bot commented 5 hours ago

By Adolfo Sanchez-Barbudo Herrera on Aug 28, 2012 05:28

Ed,

This convention is older than the time I've been involved with Eclipse. Our own legacy downloads web page relates Maintenance builds with the build ids which start with M:

http://www.eclipse.org/modeling/mdt/downloads/?project=ocl

Perhaps, the eclipse platform downloads could rather convince you:

http://download.eclipse.org/eclipse/downloads/

Likewise, the build.type is also used by publisher scripts to publish the p2 repository in different locations:

It's not good a idea using "N-build" for both main and maintenance development stream builds. Because of this, the "main development stream" jobs contain only N, I, S and R values for the build.type parameter and the "maintenance development stream" jobs contain only M and R

May be the build process and the concepts could be arguable, but I'd not spend time on these established conventions.

P.S: I've updated the jobs as commented above. Resolving as fixed.

eclipse-ocl-bot commented 5 hours ago

By Adolfo Sanchez-Barbudo Herrera on Aug 28, 2012 12:26

Just for documentation. I've also found the following link

http://www.eclipse.org/modeling/downloads/build-types.php

eclipse-ocl-bot commented 5 hours ago

By Ed Willink on May 27, 2014 09:44

CLOSED after more than a year in RESOLVED state.

eclipse-ocl-bot commented 5 hours ago

By Ed Willink on May 27, 2014 09:52

and CLOSE