Skip to content

Creating Releases

Pete Hayes edited this page Feb 16, 2024 · 1 revision

Selium's current release process broadly follows two steps - stage all the changes to be released and stash them, then PR a new commit against the release branch.

Steps

1. Stage the changes

  1. Checkout main and fetch/rebase the latest upstream changes
  2. Create a new branch for this update: git checkout -b changes
  3. Find the earliest commit since the last release and inspect the diff: git diff <last released commit>..HEAD
  4. Make note of the changes you wish to include in the relevant CHANGELOG.md
  5. Bump the version number in the relevant Cargo.toml
  6. Bump the Selium crate versions in downstream crates (e.g. if you bump the protocol crate, you’ll need to bump the dependency in client)
  7. Run the full test pack to make sure everything is ok
  8. Reset the current branch to the last released commit, so that all of the commits to be released appear as uncommitted changes: git reset --soft HEAD~<num commits>
  9. Stash these changes: git stash

2. Create a new release

  1. Create a new branch for this release: git checkout -b release-prep release
  2. Unstash your changes: git stash pop
  3. Commit these changes using the commit message format: "Release -, …"
  4. Push the new branch to your fork: git push --set-upstream origin release-prep
  5. Create a PR, remembering to set the base branch to release and not main
Clone this wiki locally