[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [wtp-releng] How can we improve our weekly declared build process?
|
Konstantin Komissarchik wrote:
I further propose that we move the start of the lock period to Friday
from Thursday. We would evaluate the results on Monday morning and
decide if we want to declare the build or skip that week. This would
give us 4 solid work days to release code normally instead of the
current situation where we have 3 and maybe a few hours on Friday
afternoon if we are lucky.
Personally I'm not fond of lock periods, or code freeze periods. They
put more of a burden then they solve. Ideally, id suggest integrating
and running builds more often. Every component or project should have
their own builds. In the WTP Incubator project, each of the incubating
components has it's own build, in which it's unit tests are run. I
think the longest each build lasts is about 12 minutes, on average they
finish in about 4 to 5 minutes. This allows quicker feed back. I'd
also suggest running Continuous Integration builds. As soon as
somebody checks code into Head, run a build to verify that it is
currently green. The unit tests in this build could be a subset of the
complete system if they take too long to run. Running continuous
integration builds helps force people to run the unit tests locally,
before they integrate their code, and it makes sure that people are at
least integrating with the latest from Head periodically. Anybody that
checked code in during that build would get notified whether the build
failed. No notification means the build passed.
You can still have a Complete integration build, with the Release
Maps. The Nightly build can be the complete integration build across
all WTP projects...this would be the build that takes about 3 to 4 hours
to complete, and would catch the integration tests.
The key to getting builds reliable is test run them continuously with
their unit tests, and integrate the code often. Otherwise, you never
know what is going to happen. If every build takes 3 to 4 hours to
complete, it is too long to give a developer relibable feedback so they
can fix the problem quickly.
More on Continuous Integration and why it is done can be found here:
http://martinfowler.com/articles/continuousIntegration.html