I think the issue here is that adopters of WTP need a two things:
1) they need stability so they can develop new function instead of 
catching up with interface changes
2) they need fast turnaround time for critical fixes so they can 
proceed with testing
These are valid requirements and we need to start satisfying them at 
this point in the cycle. We need to stop making interface changes and 
focus exclusively on quality. If we do that then our I-builds will 
have high quality and adopters will be able to move to them quickly.
I suggest we continue with weekly I-builds. I believe no one is 
planning any interface changes at this time. Let's monitor the 
situation and take a checkpoint a week after M5 is released. I'd like 
to ask Tim and Thomas to immediately flag any regressions during this 
time so we can understand the cause.
Arthur Ryman,
Rational Desktop Tools Development
phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: 4169395063@xxxxxxx
intranet: http://labweb.torolab.ibm.com/DRY6/
*Timothy Deboer/Toronto/IBM@IBMCA*
Sent by: wtp-dev-bounces@xxxxxxxxxxx
06/29/2005 08:50 AM
Please respond to
"General discussion of project-wide or architectural issues."
	
To
	naci.dai@xxxxxxxxxxxxx, "General discussion of project-wide or 
architectural issues." <wtp-dev@xxxxxxxxxxx>
cc
	
Subject
	Re: [wtp-dev] Stability of I-builds during release shutdown
	
Hi Naci,
I agree about N-builds - they are only useful for getting the very 
latest changes, with absolutely no stability guarantee. I do not think 
we should change our N-builds at all.
What I think both Thomas and I are getting at is that for external 
teams, weekly I-builds are not enough. If somebody is waiting for a 
change or a bug fix and it is done incorrectly or misses the next 
I-build, you can easily wait two weeks to get a build that you can 
use. During early milestones we might be able to slow down the 
I-builds; during intermediate milestones once a week is ok; but during 
release shutdown this lag in the cycle is too much - our turnaround 
time for builds will keep people from verifying bugs or getting 
through a complete scenario with WTP.
The Eclipse platform does an RC-build, stops producing I-builds for a 
couple days so that people can test, and then does an I-build every 
few days (spinning until clean) until the next RC. All I'm suggesting 
is that we do something similar to ensure that we have a stable RC- or 
I-build at least once a week, and preferrably more like twice. Since 
we'll be in shutdown, it should be easier (and safer) for component 
leads to release their map files more often.
Thanks,
Tim deBoer
WebSphere Tools - IBM Canada Ltd.
(905) 413-3503  (tieline 969)
deboer@xxxxxxxxxx
*Naci Dai <naci.dai@xxxxxxxxxxxxx>*
Sent by: wtp-dev-bounces@xxxxxxxxxxx
06/29/2005 08:02 AM
Please respond to
naci.dai and "General discussion of project-wide or architectural issues."
	
To
	"General discussion of project-wide or architectural issues." 
<wtp-dev@xxxxxxxxxxx>
cc
	
Subject
	Re: [wtp-dev] Stability of I-builds during release shutdown
	
I will have to add to the discussion  as some of the suggestions are 
not workable.
N-Build, or a nightly build, is a build constructed from the cvs head 
directly.  This build at the best of the times indicate the status of 
the latest changes.  It is not meant for adoption and/or testing, but 
it will give an indication of the current status of the code.  The 
fundamental property is that this builds configuration is *not* 
managed.  An n-build is not reproducible.  Current N-Build frequency 
is once every 12 hours if there are any changes.  However, N-Builds 
have not been used very successfully in the last 10 months.  N-Builds 
do not offer good feedback to produce I-Builds.
I-Build, the integration build is configuration managed build.  The 
component owners release their cvs tagged code into this build.  These 
are maintained in a set, called the build map.  Each integration build 
has a unique cvs tagged mapped.  It is reproducible.  An explicit 
cross-component effort and testing takes place to declare  an I-Build. 
 Only way to get feedback on the quality and status of an I-Build is 
to try to produce that I-Build repeatedly until satisfied.
Back to the main point,  we should and do have only one Integration 
build per week.  The fact that there are many trial I-Builds produced 
in the open confuses the issue, we will start restricting access to 
these warm up/trial builds, as they are only meant as a feedback to 
the committers to fix the problems before the I-Build is declared.
One I-Build per week maybe too frequent in itself, it gives little 
breathing room.  However, this was necessary because of the loose 
coordination between the teams, and number of changes accumulated in 
two weeks made the integration harder and often impossible.  We can 
switch to a longer frequency after we are convinced that the code base 
has stabilized to afford a longer integration period.  Currently the 
number of changes each week are massive to keep the time short. 
 Remember the M1 & M2 horror, they were the integration builds due to 
the lack of integration builds.
Post R0.7, wtp adopters can use M-builds, or communicate the I-Build 
they are based on so that we continue maintaining it to assist less 
painful adoption.
Finally,  the quality of an I-Build can only be good (all tests pass, 
smoke testing approved, component owners approve, etc),  and, it 
should not regress wrt to a prior build.  We had hard time achieving 
this goal due to test quality issues and api changes, and relaxed our 
policy during the M5 cycle.  Relaxed means we declared some builds 
with test failures.  Post M5, we should activate the strict policy again.
My experience trying to improve I-Build quality by suggesting good 
practices over email has been pretty much useless, we will have to 
enforce the practice locally within each team.  Peer-pressure and good 
quality feedback  is the mechanisms for achieving the level of quality 
we seek.  WTP is the second largest eclipse project (platform being 
the first), and probably the largest geographically in terms of number 
of teams on how they are distributed so we will  have to find the 
different ways to manage it ourselves.
In terms of build frequency, can I have people declare opinions on the 
following survey:
a) Produce an I-Build  once a week (Thursday - as usual)
b) Produce an I-Build  once every two weeks and more only when needed.
I also support frequent *trial*  I-Builds (4 hours etc. more if 
needed), prior to declaring each build.  Doing this the day before is 
too short as the team distribution crosses the day-night barrier so we 
will have to extend it to at least 48 hours.
Yes. We observed similar pattern.
 
Adopt an I-Build is a very costly process for us. It is measured in 
man-days.
 
Every time, we adopt I-Build that doesn’t go as far as the previous 
one, we take big hit on productive and we would not able to proceed 
with some implementation. Without proceed with implementation, we 
won’t discover critical bug that need to discover before 0.7.
 
Because we only have 2 weeks, I would think that we want to go one 
level further. We should respin nightly build every 4 hours, and make 
it the first priority to have all compile error and JUnit test fixed 
once it is discovered in nightly build. And, all JUnit test should be 
deemed critical.
 
This suggestion might appear to be costly. But, I believe the saving 
from the unstable build’s cascade effect is beyond the cost. After 
all, compile error and JUnit tests need to be fixed anyway. Fixing it 
early enable people/team in the downstream to start working on that 
earlier.
 
In short, I counter propose:
 
1/ We move the expectation of a nighlty build up, as what we would had 
expected from a I-Build
 
2/ We respin the nightly build every 4 hours.
 
3/ We fix all compile error and all JUnit error within a I-Build.
 
4/ We produce a warm-up I-Build on Thursday.
 
 
Thomas
 
 
------------------------------------------------------------------------
*
From:* _wtp-dev-bounces@eclipse.org_ 
<mailto:wtp-dev-bounces@xxxxxxxxxxx> 
[_mailto:wtp-dev-bounces@eclipse.org_] *On Behalf Of *Timothy Deboer*
Sent:* Tuesday, June 28, 2005 6:19 PM*
To:* _wtp-dev@eclipse.org_ <mailto:wtp-dev@xxxxxxxxxxx>*
Subject:* [wtp-dev] Stability of I-builds during release shutdown
 
Hi everyone,
The 0.7 release candidate builds are proposed for the 13th and 22nd, 
with the release at the end of the month. What I haven't seen is what 
happens between these times - presumably we are going to run nightly 
I-builds or something similar. My concern is that with constant 
I-builds typically comes constant churn - every team ends up taking a 
turn at breaking the build and we have brown-outs that are nobody's 
fault - most of the build is good, but there are some less stable 
parts which change from build to build. Our past I-builds are a good 
example - although they are fairly stable on Tuesday, we typically 
have a series of build and JUnit failures until sometime Thursday when 
everyone starts focusing on it.
To ensure that we have frequent, high-quality builds that can be used 
for testing and external teams building on top of WTP, I propose one 
of the following:
1. We do less frequent I-builds (e.g. every 3-4 days), but use warmups 
like we have done with previous I-builds. For example, we could start 
spinning I-builds on every Monday morning and spin every 4 hours until 
we get it clean, then do it again on Thursday.
2. We stay vigilant - every nightly I-build should be as good as the 
previous milestone/release candidate. Any compile errors or JUnit 
failures are deemed critical and must be fixed asap by a respin.
Thought? Opinions? Other suggestions?
Thanks,
Tim deBoer
WebSphere Tools - IBM Canada Ltd.
(905) 413-3503  (tieline 969)_
__deboer@xxxxxx.com_ <mailto:deboer@xxxxxxxxxx>
------------------------------------------------------------------------
_______________________________________________
wtp-dev mailing list_
__wtp-dev@eclipse.org_ <mailto:wtp-dev@xxxxxxxxxxx>_
__https://dev.eclipse.org/mailman/listinfo/wtp-dev_
 
--
Naci Dai,
eteration a.s.
Inonu cad. Sumer sok. Zitas D1-15
Kozyatagi, Istanbul 34742
+90 (533) 580 2393 (cell)
+90 (216) 361 5434 (phone)
+90 (216) 361 2034 (fax)_
__http://www.eteration.com/__
__mailto:nacidai@acm.org__
__mailto:naci@eteration.com________________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/wtp-dev
_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/wtp-dev
------------------------------------------------------------------------
_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/wtp-dev