Cycling in the IFS-ARPEGE-AROME code: a GIT view, April 2019
The diagram prepared by Alexandre Mary illustrates the evolution of cycles in the common code IFS-ARPEGE-AROME in the GIT repository of Meteo-France.
Main features to remember:
- all the main cycles (e.g. CY43T2, CY46) are tags on the master branch.
- a T cycle (e.g. CY47T1) is constructed as a merge of several individual branches, having the same starting point, usually a common cycle.
- the construction of a T cycle is processed in one go; then some so-called phasing corrections are brought in the validation of the branch under construction.
- a common cycle (e.g. CY47) is constructed as a merge of a R cycle (coming from ECMWF) with a T cycle. Again, the phasing process aims at validating the new merged code, before declaration as a main cycle in the master branch.
- late  developments on an operational branch, or on elder cycles, need to be reported as branches starting from a newer cycle, targetting at the construction of the following T cycle.
- the report of branches to a newer cycle may though prove to be difficult due to large amounts of changes in between.
Not shown on the diagram:
- a bf branch (bugfix, e.g. CY43T2_bf) can be derived from either a common or a T cycle, for the purpose of gathering bugfixes while further validating a cycle.
- during the phasing process, phaser need to derive branches from interim branches (rather than from a main cycle). For instance, if the latest tag on the construction branch CY46T1_r1 is CY46T1_r1.03, the phasers branches (to gather fixes and adaptations to the construction of CY47) will have to start from this CY46T1_r1.03 tag.
 late: means developments on a given branch, while newer cycles already exist