Skip to content
Cameron Smith edited this page Nov 6, 2024 · 6 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):

 - <feature> (issue/PR link)
 - <otherfeature> (issue/PR link)
  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. Create a branch of spack develop
git clone -b develop git@github.com:spack/spack.git 
cd spack
git checkout -b omegah#### 
git remote add scorec git@github.com:SCOREC/spack.git # add scorec remote for the new branch
source share/spack/setup-env.sh
  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
[[ $# -ne 1 ]] && echo "Test a Omega_h Spack build." && echo "Usage: $0 <branch name>" && exit 1
branch=$1
date=`date +%F-%H-%M`
ohSpackDir=$PWD/omegahSpack_${date}
mkdir -p $ohSpackDir
pushd $ohSpackDir
git clone -b ${branch} git@github.com:SCOREC/spack.git
pushd spack

# setup scratch space for spack
spackScratch=$ohSpackDir/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=$PWD
source $SPACK_ROOT/share/spack/setup-env.sh
which spack # sanity check

#add compiler
spack compiler add /path/to/compiler/install/dir

spack find #sanity check that the upstream was found
spec="omega-h@scorec.#### ~mpi ~trilinos +kokkos"
spack spec -I $spec
spack install --fail-fast $spec 

#set the arch and version as needed
spec="omega-h@scorec.#### +cuda ~mpi ~trilinos +kokkos ^kokkos+cuda+wrapper cuda_arch=## cuda_lambda=true"
spack spec -I $spec
spack install --fail-fast $spec 

Run the script:

chmod +x testSpackOmegah.sh
./testSpackOmegah.sh omegah####
  1. Create a PR to Spack develop.