Skip to content
Cameron Smith edited this page Oct 1, 2025 · 9 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

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

  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 Omega_h since the #.#.# release (SHA1):

New functionality or feature support:

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

Bug Fixes:

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

Other Updates and Improvements:

- <feature> (SHA1,issueNumber)
- ...
  1. apply the issue/PR label 'scorec-v#.#.#' to significant issues and PR that are part of the release

  2. increase the Omega_h version # in CMakeLists.txt in the master branch

  3. commit; include the issue # in the commit message

Omega_h version scorec-v#.#.#                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                             
see issue #<###>
  1. push
  2. create the tag git tag -a scorec-v#.#.# -m "Omega_h version scorec-v#.#.#"
  3. push the tag git push origin scorec-v#.#.#

Updating the spack version

  1. Clone spack and spack-packages then create a branch of spack-packages
git clone -b develop --depth=2 git@github.com:spack/spack.git
git clone git@github.com: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 git@github.com:SCOREC/spack-packages.git # add scorec remote for the new branch
  1. Run spack edit omega-h to edit [omega-h/package.py](https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/omega-h/package.py) and change both the
  • version number and
  • commit hash which changes the Omega_h version (step 4 above)
  1. Push the new branch
git push -u scorec omegah####
  1. As of spack 0.23.0 the following script will build and install omegah.

Create a file named testSpackOmegah.sh:

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

# setup scratch space for spack
spackScratch=$testSpackDir/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=$testSpackDir/spack
source $SPACK_ROOT/share/spack/setup-env.sh
which spack # sanity check
spack repo set --destination $testSpackDir/spack-packages builtin
#avoid permission errors
spack config add "config:allow_sgid:false"

oh="omega-h@10.10.0-scorec"
spec="$oh ~mpi ~trilinos +kokkos"
spack spec -I $spec
spack install --fail-fast $spec 

#set the arch and version as needed
spec="$oh +cuda ~mpi ~trilinos +kokkos ^kokkos+cuda+wrapper cuda_arch=86 cuda_lambda=true"
spack spec -I $spec
spack install --fail-fast $spec 
#run stand-alone tests 
#- note, without '--keep-stage' there was a problem cleaning up the created mesh files after testing
spack test run --keep-stage omega-h

Run the script:

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

Clone this wiki locally