Skip to main content

[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






Back to the top