Skip to content

Release Guide

Zhijie Shen edited this page Oct 17, 2019 · 3 revisions

Source Code Management

The convention is to create a release branch based on master if we plan to release the code. The branch is named rX.Y, for example, r0.7, r0.8 and r0.9. The commands to run are the following:

$ git fetch origin master
$ git reset --hard origin/master
$ git branch -b r0.10
$ git push origin r0.10

After branching the release branch, we still merge new PRs onto the master branch, and we should cherry-pick those should be included into the certain release into the release branch:

$ git checkout r0.10
$ git cherry-pick d673834a0c489173fe20114cba91031e957afadc

As long as we have good snapshot to release, we will tag the commit on the release branch with vX.Y.Z, for example, v0.10.0 and v0.10.1. The commands to run are the following:

$ git checkout r0.10
$ git tag v0.10.0
$ git push origin v0.10.0

Please avoid force-push an existing tag, which will affect someone who already depends on it.

Release Creation

Since we use semantics tag, after you push the tag, go to https://github.com/iotexproject/iotex-core/releases to edit the tag you have just pushed. The following information need to be edited:

  • If there's a code name, add it to the release title;
  • In the description, highlight the major changes since the last release;
  • If there's fork/breaking change, highlight the block height when the new logic will be activated.

In addition, two ioctl binaries (one form MacOS and the other Ubuntu) need to be attached to the release as well. The command to build ioctl is as follows:

$ cd /path/to/iotex-core/ioctl
$ ./buildcli.sh

After completing the things above, review the release and publish it.

Finally, you should go to https://discord.gg/hXDN3e #tech channel to announce the new release to the delegates.

Docker Images

We host the docker images on docker hub: https://hub.docker.com/r/iotex/iotex-core. Some rules have been setup to automatically build docker images for each update on branch rX.Y and tag vX.Y.Z

Clone this wiki locally