Release Process

Note

No significant code development is performed on a release branch. In addition to preparing release notes and other documentation, the only code changes that should be done are bug fixes identified during release preparations

Here are the steps to follow when creating a BLT release.

1: Start Release Candidate Branch

Create a release candidate branch off of the develop branch to initiate a release. The name of a release branch must contain the associated release version number. Typically, we use a name like v0.4.0-rc (i.e., version 0.4.0 release candidate).

git checkout -b v0.4.0-rc

2: Update Versions in Code

Update BLT_VERSION

  • SetupBLT.cmake: set(BLT_VERSION "0.4.0" CACHE STRING "")

Update Release Notes

  1. Update RELEASE-NOTES.md by changing the unreleased section from:

## [Unreleased] - Release date yyyy-mm-dd

Also add to a versioned section with the current date while leaving the unreleased section:

## [Unreleased] - Release date yyyy-mm-dd

## [Version 0.4.0] - Release date 2021-04-09

Finally, add a link to the bottom as well:

[Unreleased]:    https://github.com/LLNL/blt/compare/v0.3.6...develop

to:

[Unreleased]:    https://github.com/LLNL/blt/compare/v0.4.0...develop
[Version 0.4.0]:    https://github.com/LLNL/blt/compare/v0.3.6...v0.4.0

3: Create Pull Request and push a git tag for the release

  1. Commit the changes and push them to Github.

  2. Create a pull request from release candidate branch to main branch.

  3. Merge pull request after reviewed and passing tests.

  4. Checkout main locally: git checkout main && git pull

  5. Create release tag: git tag v0.4.0

  6. Push tag to Github: git push --tags

4: Draft a Github Release

Draft a new Release on Github

  1. Enter the desired tag version, e.g., v0.4.0

  2. Select main as the target branch to tag a release.

  3. Enter a Release title with the same as the tag v0.4.0

  4. Copy and paste the information for the release from the RELEASE-NOTES.md into the release description (omit any sections if empty).

  5. Publish the release. This will add a corresponding entry in the Releases section

Note

Github will add a corresponding tarball and zip archives consisting of the source files for each release.

5: Create Release Branch and Mergeback to develop

  1. Create a branch off main that is for the release branch.

git pull
git checkout main
git checkout -b release-v0.4.0
git push --set-upstream origin release-v0.4.0
  1. Create a pull request to merge main into develop through Github. When approved, merge it.

7: Build Release Documentation

Enable the build on readthedocs version page for the version branch created in step 5.