Release checklist

First

Ensure that the CI for the latest commit to master is passing. This ensures that trin itself is working, and that the latest docker image is working and published.

Communicate

Announce in #trin chat the upcoming release. Aim for a day or more notice, but announcing a few minutes before releasing is still better than not saying anything.

Choosing a version

Make sure that version follows semver rules e.g (0.2.0-alpha.3).

For the time being, ALWAYS specify the -alpha suffix.

Release the version

We use automated github release workflow to create a new release. This will create a new release draft with the new tag and will build all the binaries and attach them to the release.

  1. Checkout and rebase local master to upstream
git checkout master
git pull --rebase upstream master
  1. Create a new git tag with the chosen version, for example:
git tag v0.1.0-alpha.15
  1. Push the tag to the upstream repository:
git push upstream v0.1.0-alpha.15
  1. Wait for the github actions release job to finish. It will create automatically a draft release with all precompiled binaries included. This should take 15-20 min to complete.
  2. Find the draft release generated by the github bot in releases and edit the template by completing and deleting all checklists. Write a short summary if available. Add any clarifying information that's helpful about the release.
  3. Scroll to the bottom, check the Set as a pre-release box and click Publish release.

Build Instructions

Deploy

Push these changes out to the nodes we run in the network. See next page for details.

Communicate

Notify in Discord chat about the new release being complete.

As trin stabilizes, more notifications will be necessary (twitter, blog post, etc). Though we probably want to do at least a small network deployment before publicizing.