Skip to content

Latest commit

 

History

History
73 lines (58 loc) · 3.24 KB

release_flow.md

File metadata and controls

73 lines (58 loc) · 3.24 KB

Release Flow

This doc lists out the steps for preparing, cutting and rolling out a release of iotex-core.

Testing release candidate

  1. Cut release candidate, e.g., v1.2.1_rc1
git tag v1.2.1_rc1
git push origin v1.2.1_rc1
  1. 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)
  1. If a release contains a hard-fork, make a release in iotex-analyser repo, like this, and upgrade the testnet iotex-analyser backend

  2. 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.

  3. Repeat the above testing cycle until all bugs/issues are solved, and the release candidate code is running stable

Prepare release note and instruction

The following are prep work in bootstrap repo

  1. Add a release note, like this

  2. Make necessary change to config and genesis if needed, like this

  3. Update the version in README.md to the new release, and add an instruction if necessary, like this

  4. File a PR to include all these changes, get approvals (but do not merge yet)

Make the final release

  1. 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

  1. Merge the approved PR in bootstrap repo, and make a release same as the new release version, like this

  2. Make a release in iotex-core repo same as the new release version, like this

  3. Make a release in iotex-analyser repo same as the new release version, like this, and upgrade the mainnet iotex-analyser backend

  4. 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")

Rollout

  1. Notify the community. Marketing team to announce in Twitter/TG/Discord/wechat/email
  2. Notify all delegates. We'll ping delegate contact in group conversation
  3. Notify all exchanges who run IoTeX nodes
  • binance
  • huobi
  • KuCoin
  • mxc
  • coinone
  • upbit
  • bittrex