Skip to content

Release Guide

Julia Sloan edited this page May 16, 2024 · 3 revisions

Summary

Currently, ClimaCoupler uses component models from ClimaAtmos and ClimaLand. Since these (and all the other CliMA repos) are under active development, we should make regular releases of them and update the coupler for any interface or stability changes. I find every other week to be a useful frequency to do this.

How to coordinate package releases

  1. Compare ClimaAtmos and ClimaLand project compats to make sure they can be used together. If there are any dependencies that are incompatible, open issues/PRs in the component model repos to update them. The main dependencies to check are: ClimaComms, ClimaCore, ClimaParams, ClimaUtilities, Insolation, NCDatasets, SurfaceFluxes, and Thermodynamics.
  2. Figure out if each component model requires a patch release (no breaking changes) or a minor release (includes breaking changes). These breaking changes could be anything that would cause the current coupler code to fail. For example, interface changes, removal of a function or parameterization that was previously supported, etc. If it isn't clear from the NEWS.md or recently merged PRs whether breaking changes were included, default to making a minor release.
  3. Make the releases of ClimaAtmos and ClimaLand. This requires opening a PR to bump the version number in the top-level compat and resolve all lower-level compats to use that new number. I usually take this as an opportunity to up all the dependencies in these projects, but that isn't strictly required. Once this PR is merged, @JuliaRegistrator register should be commented on the commit message to register the new version with Julia.
  4. After the component model packages have been released, open an issue + PR in ClimaCoupler to update the compats of these packages and make any necessary changes to the code. Note that this may include changes beyond just the breaking changes in ClimaAtmos and ClimaLand. For example, if they have both updated to use a new ClimaCore, ClimaCoupler will need to be updated for that new version as well.
  5. Once this ClimaCoupler PR is passing CI, visually inspect the buildkite plots (especially slabplanet energy/water conservation and AMIP/NCEP comparison plots) to make sure we haven't regressed in terms of physical results. If there are any changes, I'll often ask an atmospheric scientist for help interpreting any changes since I'm not as familiar with this side of things. If everything looks reasonable/expected/stable, you're done!