Skip to content

Maintainer's Guide

Cameron Smith edited this page Sep 30, 2025 · 31 revisions

Creating a Release

  1. select the new version number following https://semver.org/:

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes
  • MINOR version when you add functionality in a backward compatible manner
  • PATCH version when you make backward compatible bug fixes
  1. create a github issue documenting significant release changes; review the commit log and closed issues to find them
This issue is to document functionality and features added to PUMI since the #.#.# release (SHA1 of prior release):

New functionality or feature support:

- <feature> (SHA1,issueNumber)
- ...

Bug Fixes:

- <feature> (SHA1,issueNumber)
- ...

Other Updates and Improvements:

- <feature> (SHA1,issueNumber)
- ...
  1. tag the issue 'tracking version features'
  2. apply the issue/PR label 'v#.#.#' to significant issues and PR that are part of the release
  3. increase the pumi version # in CMakeLists.txt in the develop branch
  4. commit; include the issue # in the commit message
pumi version #.#.#                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                             
see issue #<###>
  1. push
  2. create the tag git tag -a v#.#.# -m "PUMI version #.#.#"
  3. push the tag git push origin v#.#.#

Updating the spack version

Updated for spack 1.0 as of 9/30/2025.

  1. Clone spack and spack-packages then create a branch of spack-packages
git clone -b develop --depth=2 [email protected]:spack/spack.git
git clone [email protected]:spack/spack-packages.git
source spack/share/spack/setup-env.sh
spack repo set --destination $PWD/spack-packages builtin
pushd spack-packages
git checkout -b pumi#### 
git remote add scorec [email protected]:SCOREC/spack-packages.git # add scorec remote for the new branch
  1. Run spack edit pumi to edit pumi/package.py and change both the
  • version number and
  • commit hash which changes the pumi version (step 4 above)
  1. Commit and push the new branch
git commit -am "pumi: add version #.#.#"
git push -u scorec pumi####
  1. As of spack 1.1.0.dev0 (develop@f09c960) the following script will build and install pumi.

Create a file named testSpackPumi.sh:

#!/bin/bash
set -x
date=`date +%F-%H-%M`
pumiSpackDir=$PWD/pumiSpack_${date}
mkdir -p $pumiSpackDir
cp -r spack $pumiSpackDir
cp -r spack-packages $pumiSpackDir

# setup scratch space for spack
spackScratch=$pumiSpackDir/spack_scratch
mkdir -p $spackScratch
export SPACK_USER_CACHE_PATH=$spackScratch
export SPACK_DISABLE_LOCAL_CONFIG=true #disable use of user and system config files

export SPACK_ROOT=$pumiSpackDir/spack
source $SPACK_ROOT/share/spack/setup-env.sh
which spack # sanity check
spack repo set --destination $pumiSpackDir/spack-packages builtin
#avoid permission errors
spack config add "config:allow_sgid:false"

spec="pumi"
spack spec -I $spec
spack install --fail-fast $spec

Run the script:

chmod +x testSpackPumi.sh
./testSpackPumi.sh pumi####
  1. Create a PR to spack-packages develop.

  2. Create a highlight slide (using the ASCR Highlight Template 2025-FASTMath.pptx) for releases that include significant new functionality.

Clone this wiki locally