-
Notifications
You must be signed in to change notification settings - Fork 328
Release Guide
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.
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.
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