This doc lists out the steps for preparing, cutting and rolling out a release of iotex-core.
- Cut release candidate, e.g., v1.2.1_rc1
git tag v1.2.1_rc1
git push origin v1.2.1_rc1
- Roll out the release candidate to testnet. There are 4 clusters to upgrade:
- testnet-gcp (cluster name: "gke_iotex-servers_us-west1-a_iotex-testnet-gcp")
- testnet-gcp-2 (cluster name: "gke_iotex-servers_asia-east1-a_iotex-testnet-gcp-2")
- testnet-london (arn:aws:eks:eu-west-2:363205959602:cluster/testnet-london)
- testnet-sg (arn:aws:eks:ap-southeast-1:363205959602:cluster/testnet-sg)
-
If a release contains a hard-fork, make a release in iotex-analyser repo, like this, and upgrade the testnet iotex-analyser backend
-
Test the release candidate, observe all chain metrics. If a bug is found or perf improvement is needed, check-in fix to iotex-core, go back to step 1.
-
Repeat the above testing cycle until all bugs/issues are solved, and the release candidate code is running stable
The following are prep work in bootstrap repo
-
Add a release note, like this
-
Make necessary change to config and genesis if needed, like this
-
Update the version in README.md to the new release, and add an instruction if necessary, like this
-
File a PR to include all these changes, get approvals (but do not merge yet)
- Tag the final release candidate code by the new release version, e.g., v1.2.1, and push to iotex-core
git tag v1.2.1
git push origin v1.2.1
this will automatically trigger a build of the image (for the new release tag) on dockerhub, wait about 20 minutes for the new image to be successfully built and ready
-
Merge the approved PR in bootstrap repo, and make a release same as the new release version, like this
-
Make a release in iotex-core repo same as the new release version, like this
-
Make a release in iotex-analyser repo same as the new release version, like this, and upgrade the mainnet iotex-analyser backend
-
Rollout the release to mainnet. There are 3 clusters to upgrade:
- mainnet-gcp (cluster name: "gke_iotex-servers_us-east1-b_iotex-prod-gcp")
- mainnet-gcp-2 (cluster name: "gke_iotex-servers_us-central1_iotex-prod-gcp-2")
- mainnet-gcp-delegates (cluster name: "gke_iotex-servers_us-west1-a_iotex-prod-delegates")
- Notify the community. Marketing team to announce in Twitter/TG/Discord/wechat/email
- Notify all delegates. We'll ping delegate contact in group conversation
- Notify all exchanges who run IoTeX nodes
- binance
- huobi
- KuCoin
- mxc
- coinone
- upbit
- bittrex