Steps and updates in the Continuous Integration process
Integration of
b1:Reference:
x0is the default reference xp indev_DV49_toT1config fileTests:
b1did not require to adapt the tests $\rightarrow$ we can test with branchdev_DV49_toT1unchanged (and still equal toDV49)
davai-new_xp dev_CY49_toT1 -v dev_DV49_toT1
$~~~\hookrightarrow~~~$xi1 == x1 == x0Integration of
b2:Reference:
xi1should normally be the reference xp, but since its results are bit-identical tox0as opposed tox2, it is more relevant to compare tox2, to check that the merge ofb1andb2still give the same results asb2Tests:
b2did not require to adapt the tests $\rightarrow$ tests branchDV49_toT1unchanged
davai-new_xp dev_CY49_toT1 -v DV49_toT1
$~~~$and setref_xpid = x2
$~~~\hookrightarrow~~~$xi2 == x2- then
ref_xpidshould be set toxi2in branchDV49_toT1
Integration of
b3:Reference:
b3does not change the results, so reference experiment is as expected by defaultxi2Tests:
b3requires tests adaptations (DV49_b3) $\rightarrow$ updatedev_DV49_toT1by mergingDV49_b3in
davai-new_xp dev_CY49_toT1 -v DV49_toT1
$~~~\hookrightarrow~~~$xi3 == xi2Integration of
b4: (where it becomes more or less tricky)Reference:
b4changes the results, but the results ofxi3(current default reference for integration branch) are also changed fromx0(sinceb2) $\rightarrow$ the reference experiment becomes less obvious !
The choice of the reference should be made depending on the width of impact on both sides:if there is more differences in the results between
dev_CY49_toT1andCY49than betweenb4andCY49:
$\rightarrow$xi3should be taken as reference, and the differences finely compared to those shown inx4if there is more differences in the results between
b4andCY49than betweendev_CY49_toT1andCY49:
$\rightarrow$x4should be taken as reference, and the differences finely compared to those shown inxi3’, wherexi3’is a "witness" experiment comparing the integration branch after integration ofb3(commit<c3>) toCY49(experimentx0):
davai-new_xp <c3> -v dev_DV49_toT1
$~~~$and setref_xpid = x0
$~~~\hookrightarrow~~~$xi3’
This is still OK if the tests affected by
dev_CY49_toT1(viab2) and the tests affected byb4are not the same subset, or if at least if the affected fields are not the same. If they are (e.g. numerical differences that propagate prognostically through the model), the conclusion becomes much more difficult !!!
In this case, we do not really have explicit recommendation; the integrators should double-check the result of the merge with the author of the contributionb4. Any idea welcome to sort it out.Tests:
b4requires tests adaptations (DV49_b4) $\rightarrow$ updatedev_DV49_toT1by merging inDV49_b4in
davai-new_xp dev_CY49_toT1 -v dev_DV49_toT1
$~~~$and setref_xpid = xi3|xi4
$~~~\hookrightarrow~~~$xi4