Skip to content

Instantly share code, notes, and snippets.

@LeoHChen
Last active May 27, 2020 21:06
Show Gist options
  • Save LeoHChen/de309ab18770307650ab3ed3873454f1 to your computer and use it in GitHub Desktop.
Save LeoHChen/de309ab18770307650ab3ed3873454f1 to your computer and use it in GitHub Desktop.
post OS launch development guidance

This is a short document about the development/release process post the open staking launch on harmony mainnet.

GOAL

  • The goal of this guidance is to provide a clear guidance to developers on how/where to submit PRs.
  • A fixed release schedule also provides the community a well-planned release and set the right expectation.

BRANCH

We have two kinds of branches in our main repo: development branch, and release branch. Each developer will be using their own fork for feature development as well, which is not covered here.

  • master branch is the development/integration branch. All changes merged in master branch will be deployed/tested on LRTN.
  • t3 branch is the current release branch. All releases to mainnet will be coming from t3 branch.

TEST

  • Developers should do local test or node test on every PR merged into master branch. The master branch will be deployed and tested on LRTN on a nightly basis. https://jenkins.harmony.one/job/nightly-new/
  • Tests include tx, cx, staking regression tests. All automated. view change test automation is being built.

RELEASE

  • Weekly release to mainnet is expected. Code freeze on Friday 5pm. Final test on LRTN over the weekend, and deployment to mainnet on Monday 2pm PDT.
  • A release starts from a merge from t3 to master, and merge master to t3, to sychronize these two branches.
  • If a commit is not stable enough to release on time, it will be reverted in the release branch.

HOTFIX

  • hotfix is the urgent fix that need to be applied to mainnet asap. Hotfix can usually be submitted to t3 branch directly, so that we don't have to intervene with other PRs in master branch. Developers may choose to cherry-pick the hotfix back to master branch or wait for the release cycle to merge t3 back to master.
@sophoah
Copy link

sophoah commented May 23, 2020

Why is the master branch used for LRTN and t3 for master ? I would have expected the reverse. What t3 actually means ?

@LeoHChen
Copy link
Author

LRTN is used for nightly build and test, that's master branch is used for development.

T3 is a release branch. All release and hotfix will go to t3.

t3 means 3-torus. https://en.wikipedia.org/wiki/3-manifold#Mathematical_theory_of_3-manifolds

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment