Skip to content

Commit 557ab6d

Browse files
authored
Update spack-stack collaborators (add GMAO), create release task list issue template and CODEOWNERS file (#1748)
* Update various pieces of documentation with most recent list of stakeholders and spack-stack collaborators (add GMAO); create release task list issue template and CODEOWNERS file * Add missing codeowners and HPCs to .github/CODEOWNERS and .github/ISSUE_TEMPLATE/release_tasklist.md * [skip ci] Add NAS to .github/ISSUE_TEMPLATE/release_tasklist.md
1 parent 6b6e4d0 commit 557ab6d

5 files changed

Lines changed: 85 additions & 15 deletions

File tree

.github/CODEOWNERS

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# EPIC
2+
@natalie-perlin
3+
@ratkovasic-noaa
4+
@rickgrubin-noaa
5+
# JCSDA
6+
@ashley314
7+
@eap
8+
# NASA
9+
@mathomp4
10+
# NOAA
11+
@alexanderrichert-noaa
12+
@hanglei-noaa
13+
# NRL
14+
@climbfuji
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
---
2+
name: Release task list
3+
about: Create a task list for a spack-stack release
4+
title: '[RELEASE] release-x.y.z tasks'
5+
labels: ''
6+
assignees:
7+
# EPIC
8+
- @natalie-perlin
9+
- @ratkovasic-noaa
10+
- @rickgrubin-noaa
11+
# JCSDA
12+
- @ashley314
13+
- @eap
14+
# NASA
15+
- @mathomp4
16+
# NOAA
17+
- @alexanderrichert-noaa
18+
- @hanglei-noaa
19+
# NRL
20+
- @climbfuji
21+
22+
---
23+
24+
## Release task list
25+
26+
Project board: _insert link here_
27+
28+
- [ ] Create release branches `release/x.y` for spack, spack-packages and spack-stack
29+
- [ ] Update `doc/source/conf.py` and `.gitmodules` to use `release/x.y` instead of `develop`
30+
- [ ] Clear project board (no open pull requests other than for specific site configs or documentation)
31+
- [ ] Prepare Wiki page for release information (https://github.com/jcsda/spack-stack/wiki)
32+
- [ ] Roll out release x.y.z from release branch `release/x.y` and update documentation (readthedocs), site config, and wiki page each time
33+
- [ ] Acorn (NOAA-EMC)
34+
- [ ] Atlantis (NRL)
35+
- [ ] Blueback (NRL)
36+
- [ ] Derecho (EPIC)
37+
- [ ] Discover (JCSDA)
38+
- [ ] Gaea (EPIC)
39+
- [ ] Hercules (EPIC)
40+
- [ ] Narwhal (NRL)
41+
- [ ] NAS (NASA)
42+
- [ ] Nautilus (NRL)
43+
- [ ] Orion (EPIC)
44+
- [ ] S4 (???)
45+
- [ ] Ursa (EPIC)
46+
- [ ] JCSDA AWS Parallelcluster (JCSDA)
47+
- [ ] JCSDA AWS AMI (JCSDA)
48+
- [ ] JCSDA CI containers (JCSDA)
49+
- [ ] NAVY PW AWS (NRL)
50+
- [ ] NOAA PW AWS (EPIC)
51+
- [ ] NOAA PW Azure (EPIC)
52+
- [ ] NOAA PW Gcloud (EPIC)
53+
- [ ] Tag spack and spack-packages
54+
- [ ] Update `doc/source/conf.py` and `.gitmodules` to use tags instead of release branches
55+
- [ ] Tag spack-stack
56+
- [ ] Prepare and publish release notes: https://github.com/JCSDA/spack-stack/releases
57+
- [ ] Close GitHub project

doc/source/Overview.rst

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Overview
44
*************************
55

6-
spack-stack is a collaborative effort between the NOAA Environmental Modeling Center (EMC), the UCAR Joint Center for Satellite Data Assimilation (JCSDA), the Earth Prediction Innovation Center (EPIC), and the U.S. Naval Research Laboratory (NRL). spack-stack is designed to support the various applications of the supporting agencies such as the Unified Forecast System (UFS) or the Joint Effort for Data assimilation Integration (JEDI). The stack can be installed on a range of platforms, from Linux and macOS laptops to HPC systems, and comes pre-configured for many systems. Users can install the necessary packages for a particular application and later add the missing packages for another application without having to rebuild the entire stack.
6+
spack-stack is a collaborative effort between the NOAA Environmental Modeling Center (EMC), the UCAR Joint Center for Satellite Data Assimilation (JCSDA), the Earth Prediction Innovation Center (EPIC), the U.S. Naval Research Laboratory (NRL), and the NASA Global Modeling and Assimilation Office (GMAO). spack-stack is designed to support the various applications of the supporting agencies such as the Unified Forecast System (UFS) or the Joint Effort for Data assimilation Integration (JEDI). The stack can be installed on a range of platforms, from Linux and macOS laptops to HPC systems, and comes pre-configured for many systems. Users can install the necessary packages for a particular application and later add the missing packages for another application without having to rebuild the entire stack.
77

88
`Spack <https://github.com/spack/spack>`_ is a community-supported, multi-platform, Python-based package manager originally developed by the Lawrence Livermore National Laboratory (LLNL; https://computing.llnl.gov/projects/spack-hpc-package-manager). It is provided as a submodule so that a stable version can be referenced. See the `Spack Documentation <https://spack.readthedocs.io/en/latest>`_ for more information.
99

@@ -13,15 +13,7 @@ spack-stack is mainly a collection of Spack configuration files, but provides a
1313

1414
- ``spack stack setup-meta-modules`` creates compiler, MPI and Python meta-modules for a convenient setup of a user environment using modules (``lua`` and ``tcl``)
1515

16-
spack-stack is maintained by:
17-
18-
- Alex Richert (@AlexanderRichert-NOAA), Hang Lei (@Hang-Lei-NOAA), and Ed Hartnett (@edwardhartnett), NOAA-EMC
19-
20-
- Steve Herbener (@srherbener) and TBD, JCSDA
21-
22-
- Cameron Book (@ulmononian), Natalie Perlin (@natalie-perlin), and Ratko Vasic (@ratkovasic-noaa), EPIC
23-
24-
- Dom Heinzeller (@climbfuji) and Sarah King (@sking112), NRL
16+
spack-stack is maintained by representatives of the contributing organizations (see `project_charter.md` in this repository for the current list of representatives).
2517

2618
===============
2719
Getting started

doc/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
project = 'spack-stack'
2323
copyright = '2025 '
24-
author = 'Dominikus Heinzeller, Alexander Richert, Evan Parker, Steve Herbener, Steve Grace, Cameron Book, Ratko Vasic, Natalie Perlin, Rick Grubin'
24+
author = 'spack-stack collaboration'
2525

2626
# The short X.Y version
2727
version = 'dev'

project_charter.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ in installing the large number of packages managed by spack-stack.
2424
- The UCAR Joint Center for Satellite Data Assimilation (JCSDA)
2525
- The Earth Prediction Innovation Center (EPIC)
2626
- The U.S. Naval Research Laboratory (NRL)
27+
- The NASA Global Modeling and Assimilation Office, (GMAO)
2728

2829
Each stakeholder will designate a small number of developers to assist
2930
in spack-stack development by becoming a code manager of the
@@ -34,9 +35,10 @@ spack-stack repo.
3435
Organization | Code Manager(s)
3536
-------------|----------------
3637
NOAA EMC | Alex Richert, Hang Lei
37-
JCSDA | Steve Grace, Evan Parker
38+
JCSDA | Ashley Griffin, Evan Parker
3839
EPIC | Rick Grubin, Ratko Vasic
39-
NRL | Dom Heinzeller, Sarah King
40+
NRL | Dom Heinzeller, TBD
41+
NASA | Matthew Thompson, TBD
4042

4143
## Project Process
4244

@@ -81,11 +83,11 @@ install on their systems (see https://spack-stack.readthedocs.io/en/latest/PreCo
8183
Any stakeholder can perform a release at any time.
8284

8385
The release process:
84-
* Create a GitHub issue explaining the reason for the release, and to notify all other stakeholders.
86+
* Create a GitHub issue using the release task list template
8587
* Unless it is a patch release (increasing the z in x.y.z,), create a project board for the release at https://github.com/JCSDA/spack-stack/projects.
8688
* Designate any issues that must be fixed before release by assigning it to the epic and the project board, and ensure their completion.
8789
* Install the release tags (or the final version of the release branches to allow for last-minute site config updates) on all supported platforms.
88-
* Update the documentation and create release tags for the spack-stack repo and the spack submodule.
90+
* Update the documentation and create release tags for the spack-stack repo and the spack and spack-packages submodules.
8991
* Update the GitHub Release Notes.
9092
* Perform the release on GitHub.
9193

@@ -158,14 +160,17 @@ _Sole exception_
158160
`esmf@8.4.2 + mapl@2.35.2` works with `esmf@8.5.0 + mapl@2.35.2` because auto-generated module name for mapl is `mapl/2.35.2-esmf-8.5.0`
159161

160162
#### Also to consider
163+
161164
Our spack environments are large and complex. Adding more and more packages to the same environment between releases increases the risk of spack concretization errors (rebuilding existing libraries against new dependencies, unintended updates to existing libraries, duplicate packages, …)
162165

163166
Spack-stack unified environments serve multiple applications at the same time: `ufs-weather-model`, `ufs-srw-app`, `skylab` (`jedi-fv3`, `soca`, `ewok`), `jedi-mpas`, `jedi-neptune`, `jedi-um`, `jedi-ufs`, etc. - for each of these, developers may potentially request several package installations “between releases”.
164167

165168
### Handling library updates for applications
169+
166170
We need to consider two types of installations: test installations and official updates
167171

168172
#### Test installations
173+
169174
Test installations can be requested as part of issues (which should be mandatory for pull requests anyway). These can be more frequent than official updates.
170175
Issues can be in the application (e.g. `ufs-weather-model` repo) or in spack-stack, clearly describing the need and with a reasonable timeline.
171176

@@ -180,6 +185,7 @@ module load fms/2023.02
180185
The advantage is that it is obvious to the developer, the reviewers and the code managers that a library update in a PR is not officially rolled out everywhere yet. Further, there is no risk to corrupt official spack-stack installations with frequent test installs.
181186

182187
#### Official updates / patch releases
188+
183189
Official updates should be limited in frequency and are only allowed after full acceptance testing (see test installations above).
184190

185191
Updates that will generate module duplicates require a completely new spack-stack installation. Making these kinds of updates between releases should be the absolute exception when it is really urgent (critical bugs or security issues). We roll out a new spack-stack release every three months anyway!
@@ -189,6 +195,7 @@ Official updates need to be made consistently across all platforms. There shall
189195
Since official updates require coordination across all platforms, the timeline for these installs must be more generous than for test installs.
190196

191197
## Lifetime of spack-stack installations
198+
192199
Regular, full releases of spack-stack are made every three months around the end of February, May, August, and November.
193200

194201
spack-stack developers are committed to maintaining a rolling stock of the last four releases, i.e. one year's worth of spack-stack releases. Under special circumstances (e.g. operational implementations that require long-term support, long-running official retrospectives), selected releases may be kept longer. Maintenance in this context refers to addressing bugs or recompiling in the event of an intrusive update to the system. Adding new functionality or new packages is in general limited to the current and future releases. Modifications to past releases that do not impact existing installations, such as the addition of chained environments/custom Spack repositories, or new templates or site configurations, may be considered on a case-by-case basis."

0 commit comments

Comments
 (0)