Gunrock's Release

We follow the versioning semantics proposed by Tom Preston-Werner (https://semver.org/), and therefore consider the following types of releases:

Release Checklist

  1. Switch to development branch: git checkout dev
  2. Update gunrock's version in CMakeLists and BaseMakefile
  3. (Optional) Update the JSON schema version by changing it to the present date. Only update if any changes were made to the JSON structure
  4. Resolve any conflicts between the master and the dev branch
  5. Commit all changes to dev, check with githb to see if the build (and code coverage) for the commits passed
  6. Create a pre-release branch from the dev branch to publish changes to: git branch pre-release
  7. (Optional) Within the pre-release branch you can choose to remove code that is not ready for release and therefore should just stay in the dev branch
  8. Commit all changes after removing the development code from the pre-release branch, and create a "ready for release" github pull request from pre-release to master
  9. If all builds (and code coverage) for pre-release to master pass, merge the pull request
  10. Draft a new release on github, following the versioning semantics
  11. Add an in-depth change-log, using the exisiting examples for major, minor or patch release