Overview of the Workflowο
The release process typically follows this progression:
Each of these steps is detailed in its own page. See below for a high-level summary.
1. How Conda and Spack Work Together in E3SM-Unifiedο
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
2. 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
3. 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
4. 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
extensive coordination and may involve debugging and extending the Spack build
workflow, updating the E3SM Spack fork, and modifying mache
to support new
systems or changes in machine configurations.
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
5. 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
6. 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
7. Maintaining Past Versionsο
Older versions of E3SM-Unified sometimes require maintenance (repairs or deletion).
π Read more