Mercurial forests for JDK 8
Vita Santrucek
Vita.Santrucek at oracle.com
Tue May 31 13:45:15 PDT 2011
[Just joined the alias and missed the early stage of this discussion]
I agree that the past model was not very efficient and we had instances
where an interaction bug was found 4 weeks after a change was first
integrated, even though engineers were following the correct process. We
need to fix that.
In the end game of JDK 7 we did a first step towards more expedient
integrations - there are not pre-determined integration slots, all
integrations are performed on first-come, first-served basis after
reserving a slot.
In my opinion, to make the process faster, next we should optimize the
pre-integration testing and integration itself:
1) split the integration repos - in the current model, the fastest/least
buggy components need to wait for the slowest/... to finish their
pre-integration testing (PIT). While in an ideal case we have working
nightly/CI testing for all the sub-components, it is not the case, and
those who are ahead of the game should get the ability to integrate when
they are ready (and pioneer the process for the rest).
My understanding is that this had already been considered. Probably, my
team can help with implementing it.
2) QE as integrators - QE is responsible for the verifying the fixes and
overal component quality. As such, QE should perform the gate-keeping
function for their components. This will further speed up the frequent
integrations and also it will allow QE to provide proper coverage before
integrating. This model has been used by JRockit.
So the proposed process would be:
1) developer creates a fix/feature
2) developer tests the fix on his local repo code
3) developer(s) integrate(s) a fix into the component repo
4) QE runs CI/PIT (coverage as agreed by the component team)
5) QE reserves a slot and integrates to the master repo
6) other component teams pull the changes (each promo time or more
frequently)
For some teams, this effectively takes the integration process from
weeks to a day. Most interaction bugs would be found within a week.
Vita
On Tue, 31 May 2011, David Katleman wrote:
->Date: Tue, 31 May 2011 10:02:26 -0700
->From: David Katleman <david.katleman at oracle.com>
->To: jdk8-dev at openjdk.java.net
->Subject: Re: Mercurial forests for JDK 8
->
->On 5/30/2011 11:45 AM, Roger Calnan wrote:
->> depending on the integration. How about having an "integration baton"
->> rather than a
->> schedule and see if issues come up. There would then only be one regular
->> slot for RE.
->
->Integration schedules were setup not just for build stability, but also to
->spread out integrations through the entire week. We also manipulated the
->schedule to separate integrations that proved to be problematic.
->
->Prior to the schedules, integrations tended to bunch up just before the
->promotion dates, with little change going in for the first half of a week.
->That bunching contributed to build failures at promotion time, rather than
->having those failures earlier in a weekly cycle, where there is more time to
->recover.
->
->I'm not opposed to a more free style approach to integration, especially with
->the considerable consolidation of groups, as long as we can manage the
->bunching.
->
-> Dave
->
->
More information about the jdk8-dev
mailing list