Transitions Newsletter Header

Community Connections: Continuous integration for community engagement in CCPP Physics code management

Contributed by Lulin Xue (NCAR)
Autumn 2022

Continuous integration (CI) is a software development practice where developers regularly merge their code changes into a central repository whereby automated builds and tests are run. The key goals of continuous integration are to quickly find and address bugs, improve software quality, and reduce the time it takes to validate and release new software updates. The DTC Common Community Physics Package (CCPP) team has not only adopted CI for CCPP Physics code updates and releases, but also applied the CI concept to community engagement and support. The CCPP team established bi-weekly CCPP Physics code management meetings in August 2021. Representatives of organizations, NOAA, NCAR, Naval Research Laboratory (NRL), and DTC, regularly involved in the development of  CCPP actively participate in the meetings to discuss issues, develop solutions, and evaluate outcomes in a productive collaborative forum.

The concept of CI is useful in software development and is very helpful in connecting communities. The DTC CCPP team will continue to engage the broader community through different platforms and opportunities.

One successful example of the CI for community engagement in CCPP Physics code management is the establishment of a code fork referred to as the UFS Fork of CCPP Physics. As more groups started using and developing CCPP-compliant physics and chemistry, an effective community collaboration methodology on CCPP Physics has become increasingly important. After collecting community input in late 2020, the DTC CCPP team developed a proposal for the CCPP Physics repository structure and code management plan in June 2021. The proposal includes a code repository structure consisting of the authoritative CCPP Physics main branch maintained by the CCPP team and multiple CCPP Physics forks for different model systems maintained by corresponding modeling centers or developers. For the individual physics scheme, a similar structure will be adopted, in which individual physics scheme developers are responsible for authoritative physics repositories, and modeling centers are responsible for their fork/branches. The proposal has been discussed and improved iteratively at the CCPP Physics code management meetings for a year and the proposed recommendations were implemented in October 2022. The DTC CCPP team and EMC are currently co-managing the UFS Fork of CCPP Physics.

CI for community input and engagement in CCPP Physics code management has led to many important outcomes and initiatives in addition to the UFS Fork of CCPP Physics. The engagement of the NCAR Mesoscale & Microscale Meteorology (MMM) model development team led to a new DTC project to test the CCPP compliance of NCAR MMM physics suite in the CCPP Single Column Model (SCM). The NRL team identified a backward incompatibility issue for their Navy Environmental Prediction sysTem Utilizing the NUMA corE (NEPTUNE) model when CCPP Physics updates required corresponding changes in the host model this summer. The DTC CCPP team actively worked with the NRL team to propose a solution for this problem using CCPP Framework functionality and the CI capability offered by GitHub. NCEP EMC representatives recently raised the question of how to simplify and improve the CCPP interstitial schemes (​​modularized pieces of code that perform data preparation, diagnostics, or other "glue" functions, and allow primary schemes to work together as a suite), which was echoed among all groups. The DTC CCPP team built an inventory of all existing interstitial schemes and started to classify them based on their host model specificity. Proposed pathways addressing this problem were discussed and refined at multiple meetings. This ongoing effort is expected to lead to improvement in the interoperability of CCPP Physics.

The concept of CI is useful in software development and is very helpful in connecting communities. The DTC CCPP team will continue to engage the broader community through different platforms and opportunities. The planned CCPP visioning workshop in 2023 will include a topic on how to better engage and support the community in using and developing CCPP.