Release Process #951
Replies: 3 comments 2 replies
-
|
cc @rbair23 @SimiHunjan @Sean-Tedrow-LB @andrix10 @keirabee @easpaas @rickyrodmac |
Beta Was this translation helpful? Give feedback.
-
|
Something @Sean-Tedrow-LB suggested, but hasn't had the time to write down here is that we should keep all features on their own version until they hit an official release. E.g. if we were to do an SDK network overhaul and implement a new Hedera feature we'd have a branch for each. Then when releasing we'd branch from |
Beta Was this translation helpful? Give feedback.
-
|
After talking with @easpaas we came to realize this issue may be a lot easier to solve if we had separate branches for each network inside of |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Release Process
Hey everyone, after some discussion I've along with others have come to realize the way we separate our releases is problematic because it does not differenciate between SDK beta features and Hedera Services
previewnetfeatures. I think this distintion is necessary because it is a separation of concerns. Currently we have the following:mainbranchwere applied to
maindirectly.developbranchpreviewnetfeatures.The issue in particular with this is that the SDK features can and should be stabalized after a single sprint of no change to said feature. However, Hedera Services
previewnetfeatures might be pushed back if issues are found. As of right now we incorrectly still merge the last sprintsdevelopintomainmeaning sometimes we releasepreviewnetfeatures in our official release, e.g. the recent account allowance feature. So, I think a change is warranted and this is what I have in mind right now.mainbranchtestnetandmainnet.developbranchmainMath.random()would be herebeta.N, e.g.v2.12.0-beta.1main. Otherwise it stays ondevelop.rc/<version>should be created per release candidatemainmainwhen Hedera Services supports the new requests onmainnet. This will likely require coordination with Simi.User Stories
A new HIP is created for feature X.
hedera-protobufsis updated with protobufs for feature X. Then, a new branch frommainshould be created with the name ofrc/<version>where<version>is the version feature X is expected to hitmainnet.A feature that hit
mainnetis discovered to have a bug, and to fix this bug protobufs need to be updated. Then,mainshould be updated with the new protobufs and a fix should be implemented in a non-breaking way.A bug is discovered in a recent beta release. Then, the
developbranch should be updated with the fix, and another beta patch release should be released either during the sprint, or at the end of the sprint depending on the severity.A bug is discovered in the latest official release. Then,
mainshould be updated with the fix, and another patch release should be released either during the sprint, or at the end of the sprint depending on the severity.A recent feature that was expected to hit
mainneton v0.24.0 is delayed to version 25. Then,rc/v0.24.0should remove said feature. A new branch should be created if one does not already exist for version v0.25.0, and that branch should be updated with the new feature.A older version of the SDK is found to have a bug. Then the latest
mainrelease should be tested for this bug, if the bug still exists it should be fixed onmain. Otherwise, do nothing.Current Release Process
mainnamedrelease/v<X>where<X>is a semver versionChangelogis up to date in each PRgitdirectly into arelease/Xbranch instead of using GitHub; leave the PRs openvariant/jdk7and rungit clean -ffdxto make sure branc his cleanvariant/jdk7./gradlew sdk:assembleto check if the SDK builds./gradlew sdk:uploadeArchievevariant/jdk9and rungit clean -ffdxto make sure branc his cleanvariant/jdk9./gradlew sdk:assembleto check if the SDK builds./gradlew sdk:uploadeArchievejust publishorjust publish betaif it's a beta releasego buildand thengo test -tags unit -vBeta Was this translation helpful? Give feedback.
All reactions