Steps and updates in the Continuous Integration process
Integration of
b1
:Reference:
x0
is the default reference xp indev_DV49_toT1
config fileTests:
b1
did not require to adapt the tests $\rightarrow$ we can test with branchdev_DV49_toT1
unchanged (and still equal toDV49
)
davai-new_xp dev_CY49_toT1 -v dev_DV49_toT1
$~~~\hookrightarrow~~~$xi1 == x1 == x0
Integration of
b2
:Reference:
xi1
should normally be the reference xp, but since its results are bit-identical tox0
as opposed tox2
, it is more relevant to compare tox2
, to check that the merge ofb1
andb2
still give the same results asb2
Tests:
b2
did not require to adapt the tests $\rightarrow$ tests branchDV49_toT1
unchanged
davai-new_xp dev_CY49_toT1 -v DV49_toT1
$~~~$and setref_xpid = x2
$~~~\hookrightarrow~~~$xi2 == x2
- then
ref_xpid
should be set toxi2
in branchDV49_toT1
Integration of
b3
:Reference:
b3
does not change the results, so reference experiment is as expected by defaultxi2
Tests:
b3
requires tests adaptations (DV49_b3
) $\rightarrow$ updatedev_DV49_toT1
by mergingDV49_b3
in
davai-new_xp dev_CY49_toT1 -v DV49_toT1
$~~~\hookrightarrow~~~$xi3 == xi2
Integration of
b4
: (where it becomes more or less tricky)Reference:
b4
changes 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_toT1
andCY49
than betweenb4
andCY49
:
$\rightarrow$xi3
should be taken as reference, and the differences finely compared to those shown inx4
if there is more differences in the results between
b4
andCY49
than betweendev_CY49_toT1
andCY49
:
$\rightarrow$x4
should 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 byb4
are 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:
b4
requires tests adaptations (DV49_b4
) $\rightarrow$ updatedev_DV49_toT1
by merging inDV49_b4
in
davai-new_xp dev_CY49_toT1 -v dev_DV49_toT1
$~~~$and setref_xpid = xi3|xi4
$~~~\hookrightarrow~~~$xi4