Deploying the Final Shared Spack Environment

Once all dependencies have been tested and validated, and the new Polaris version has passed testing across the relevant HPC systems, it is time to deploy shared Spack environments. This page outlines the process of finalizing the Polaris version update and notifying the community.


✅ PR Merge Checklist

Before merging the PR:

  • [ ] Final deployments have been completed on all target HPC machines

  • [ ] Test suites for each supported E3SM component have passed on all machines


Step-by-Step Finalization

1. Tag a Release of the Previous Polaris Version

For provenance and to have a citation, we tag the last commit of the previous Polaris version as the release.

If you want to, you can make a branch to update polaris/version.py to the release version (e.g. 0.8.0), make a PR and merge it into main. This is not strictly necessary as no one will use this release version in our current workflows.

Either way, go to Releases on the right on the main page of the repo and click Draft a new release at the top.

Document the changes in this version (or you can use the Generate release notes to generate these automatically, but then please remove bot PRs for updating pre-commit dependencies). Here is an example.

2. Deploy Shared Spack Environments on HPC Systems

Use the same process as during test deployment but you do not use the --spack flag to specify a test deployment location. For example:

SCRATCH=<path_to_scratch>
CONDA_BASE=~/miniforge3
mdkir -p $SCRATCH/tmp_spack
./configure_polaris_envs.py \
    --conda $CONDA_BASE \
    --update_spack \
    --tmpdir $SCRATCH/tmp_spack \
    --compiler intel intel gnu \
    --mpi openmpi impi openmpi \
    --recreate \
    --verbose

This creates a local activation scripts like:

  • load_polaris_dev_<version>_<machine>_<compiler>_<mpi>.sh

3. Announce the Release

Optionally, share the updated version:

  • 📣 Slack (#omega and #mpas-devops) with release highlights

Things you may want to include:

  • List of supported HPC machines

  • Summary of major changes, fixes, and new features


🔁 Post-Release Maintenance

On each supported machine:

  • Remove test spack environments and temp directory

  • Delete the update-to-<version> branch


➡ Next: Maintaining Past Versions