This is a short document about the development/release process post the open staking launch on harmony mainnet.
- 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.
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.
- 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.
- 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 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.
Why is the master branch used for LRTN and t3 for master ? I would have expected the reverse. What t3 actually means ?