-
Notifications
You must be signed in to change notification settings - Fork 79
chore: new release process ( beta and full ) #3647
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Ivansete-status
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR! 🙌
Some comments so far
I would suggest to add the Vac-QA test (asking Florin, Aya, etc.) within the beta release, which is very fast and gives a very valuable feedback 🚀
e6889ab to
8451b57
Compare
|
|
||
| All items below are to be completed by the owner of the given release. | ||
|
|
||
| - [ ] Create release branch ( e.g. release/v0.X.0 ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to -beta all the tag and file names? Like release/v0.X.0-beta. (Asking. Not sure if that's even a good idea).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it’s a very good idea — it gives clear uniqueness to the branch, tag, and release names. @fcecin wdyt @Ivansete-status ??
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, this is a great idea @fcecin @darshankabariya ! 🙌
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, it’s fine even without using -beta. If we change the branch name to release/v0.X.0-beta, the release candidate names become unnecessarily long and a bit odd (e.g., v0.X.0-beta-rc.0, v0.X.0-beta-rc.1). But if you still prefer this approach, I’m happy to update it. so beta tag only at final tag after validation complete.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can actually "upgrade" any beta release to a full release by performing the full round of QA on top of it later. Then it's just about copying the same files that were released with the beta process and removing beta from them. There's no need to distinguish a beta and a full release internally as the only difference is the full external QA process.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gah, need to nerd out just a little bit more on this topic.
Usually, project releases don't get gated by heavy external QA. That is actually good and a privilege for nwaku to have the Status QA process available for its releases. QA is expensive and we have that covered for every release, which is luxurious.
We do however need a way to release without the full QA cycle. When projects do releases, it's already been through the standard level of validation that is both cheaper and still very thorough (e.g. CI with ~1,000 tests plus the brains of N people).
When projects do releases, there's an internal sense of whether the features in it are risqué or not, which motivates e.g. "beta" releases from the start. That's when you'd see branch names and tag names with "beta".
But nwaku doesn't release anything "beta" in that sense (if we did, that would have to be our "alpha"s instead, or "experimental", which is what we use after there's no more Greek letters to use). All our releases are meant to be stable. So it doesn't make much sense to use -beta in our tags and branches ̶a̶n̶d̶ ̶f̶i̶l̶e̶s̶, because the "beta" attribution comes later -- it comes from making the release generally available while leaving the heavier QA step for later.
It wouldn't hurt necessarily to have -beta in all the tags ̶a̶n̶d̶ ̶f̶i̶l̶e̶s̶ and branches and etc. but strictly speaking, the concept in the case of the nwaku release process just appears the moment the artifact is output.
Random idea: at some point we could even have |
|
Good suggestion @fcecin (#3647 (comment)) |
fcecin
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Love our new beta releaase process!!
Ivansete-status
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding some more comments. Thanks!
|
Hi @Ivansete-status |
Ivansete-status
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some more comments!
Thanks 🙌
Ivansete-status
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Getting closer! Thanks for the patience :)
Some more nitpicks
|
|
||
| - [ ] **Promote release to fleets**. | ||
| - [ ] Ask the PM lead to announce the release. | ||
| - [ ] Update infra config with any deprecated arguments or changed options. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - [ ] Update infra config with any deprecated arguments or changed options. | |
| - [ ] Update infra config with any deprecated arguments or changed options. | |
| - [ ] Update waku.sandbox with [this deployment job](https://ci.infra.status.im/job/nim-waku/job/deploy-waku-sandbox/). |
|
|
||
| All items below are to be completed by the owner of the given release. | ||
|
|
||
| - [ ] Create release branch ( e.g. release/v0.X.0-beta ) if it doesn't exist. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - [ ] Create release branch ( e.g. release/v0.X.0-beta ) if it doesn't exist. | |
| - [ ] Create release branch with major and minor only ( e.g. release/v0.X ) if it doesn't exist. |
|
|
||
| All items below are to be completed by the owner of the given release. | ||
|
|
||
| - [ ] Create release branch ( e.g. release/v0.X.0-beta ) if it doesn't exist. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - [ ] Create release branch ( e.g. release/v0.X.0-beta ) if it doesn't exist. | |
| - [ ] Create release branch with major and minor only ( e.g. release/v0.X ) if it doesn't exist. |
|
|
||
| - [ ] **Proceed with release** | ||
|
|
||
| - [ ] Assign a final release tag ( v0.X.0 ) to the same commit that contains the validated release-candidate tag (e.g. v0.X.0-beta) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - [ ] Assign a final release tag ( v0.X.0 ) to the same commit that contains the validated release-candidate tag (e.g. v0.X.0-beta) | |
| - [ ] Assign a final release tag ( v0.X.0 ) to the same commit that contains the validated release-candidate tag (e.g. v0.X.0) |
docs/contributors/release-process.md
Outdated
| 6a. **Automated testing** | ||
| - Ensure all the unit tests (specifically js-waku tests) are green against the release candidate. | ||
| - Ask Vac-QA and Vac-DST to run their available tests against the release candidate, share all release candidate with both team. | ||
| > We need additional report like [this](https://www.notion.so/DST-Reports-1228f96fb65c80729cd1d98a7496fe6f) specificly from DST team. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This release-process.md should be more concise.
There is duplicated information.
Let's keep it as small as possible and keep all the information in either .github/ISSUE_TEMPLATE/prepare_full_release.md or .github/ISSUE_TEMPLATE/prepare_beta_release.md
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assumed release-process.md would have detailed process with command that doesn’t fit into the checklist template.
so i thinking release-process.md is kind of referance if releaser confuse in with checklist.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My only concern is that we would need to maintain two similar information from different places. But is fine, we can revisit if there is confusion in the future
Ivansete-status
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.

@Ivansete-status @NagyZoltanPeter as discussed in the last PM, I’ve updated the release process to separate beta and full releases.
@fryorcraken