Overview of the Workflowο
The release process typically follows this progression:
We begin with some background information, then each of these steps is detailed in its own page. See below for a high-level summary.
Backgraound: How Conda and Spack Work Together in Polarisο
Why does E3SM-Unified use both Conda and Spack? What roles do they each serve? Before you start, itβs critical to understand how these two systems work together.
π Read more
1. Planning Package Updatesο
Updates are driven by the needs of the E3SM community, typically discussed via Confluence or GitHub. This step documents how to propose new packages or changes to existing ones.
π Read more
2. Creating Release Candidatesο
This step covers:
Making RCs for core tools (e.g., E3SM Diags, MPAS-Analysis, zppy)
Building an
e3sm-unified
RC
π Read more
3. Deploying and Testing on HPCsο
Before full deployment, release candidates are installed on a subset of HPC
platforms for iterative testing and validation. This stage often requires
updating updating mache
to support new systems or changes in machine
configurations, adding package versions to E3SMβs Spack fork, and
troubleshooting deployment scripts.
Testing includes everything from basic imports to full zppy
workflows. This
is a collaborative effort, with the full iterative process often spanning
several weeks to a few months.
π Read more
4. Adding a New Machineο
Most of the work for adding a new machine takes place in mache
. Here we
provide notes on adding new HPCs that are specific to E3SM-Unified.
π Read more
5. Finalizing the Releaseο
Once all RCs pass testing:
Make final releases of all dependencies
Publish the final E3SM-Unified conda package
Deploy across all supported HPC machines
Announce the release to the community
π Read more
6. Maintaining Past Versionsο
Older versions of E3SM-Unified sometimes require maintenance (repairs or deletion).
π Read more