Overview of Deployment and Testing๏
This section documents the full testing and deployment process for Polaris, including how to:
- Update the E3SM Spack fork to support new versions 
- Maintain and release new versions of - machefor system-specific Spack configurations
- Perform test and final shared deployments of Polaris on supported HPC platforms 
- Identify and resolve deployment issues 
Phased Deployment Strategy๏
Testing typically begins with a partial deployment of the new Polaris version on a few key HPC systems. Once core functionality and package compatibility are verified, a full deployment to all supported machines is performed.
The process may require some iteration if major changes to dependencies or the deployment infrastructure are required during troubleshooting.
Key Components of the Deployment Process๏
The following steps and infrastructure are used when testing and deploying a new release:
๐ ๏ธ Updating the E3SM Spack Fork๏
- Add new versions of performance-critical tools (e.g., ESMF, MOAB) 
- Create - spack_for_mache_<version>branches for use in- mache
๐งฉ Updating mache๏
- Keep system-specific Spack environment templates in sync with E3SM module stacks 
- Create RC and final releases of - mache
- Use - utils/update_cime_machine_config.pyto streamline updates
๐ Deploying Spack Environments on HPCs๏
- Use the - configure_polaris_envs.pyscript and template infrastructure
- Build environments and activation scripts tailored to each system 
โ Running Required Test Suites๏
- Describes how to validate new environments by running required test suites for each supported machine, compiler, and MPI variant 
- Provides step-by-step instructions for MPAS-Ocean ( - prsuite) and Omega (CTest) validation
- Explains how to document results and handle failures in the PR checklist 
๐งช Troubleshooting Deployment Issues๏
- Resolve Spack build failures and MPI/compiler mismatches 
- Address problems with activation, modules, or symbolic links 
- Common pitfalls in configuration 
Audience๏
This section is primarily intended for Polaris maintainers and release engineers. Familiarity with Spack, Conda, and HPC system environments is assumed.
โก Start with: Updating the E3SM Spack Fork