Skip to content

Conversation

@darshankabariya
Copy link
Contributor

@darshankabariya darshankabariya commented Nov 20, 2025

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

  • Created two separate templates for full and beta releases (.github/ISSUE_TEMPLATE/prepare_full_release.md and .github/ISSUE_TEMPLATE/prepare_beta_release.md).
  • Added a detailed process so we can properly follow both release types.

@fryorcraken

@darshankabariya darshankabariya marked this pull request as draft November 20, 2025 10:40
@darshankabariya darshankabariya changed the title chore: new release process ( beta and stable ) chore: new release process ( beta and full ) Nov 20, 2025
Copy link
Collaborator

@Ivansete-status Ivansete-status left a 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 🚀


All items below are to be completed by the owner of the given release.

- [ ] Create release branch ( e.g. release/v0.X.0 )
Copy link
Contributor

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

Copy link
Contributor Author

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 ??

Copy link
Collaborator

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 ! 🙌

Copy link
Contributor Author

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.

Copy link
Contributor

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.

Copy link
Contributor

@fcecin fcecin Nov 21, 2025

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.

@fcecin
Copy link
Contributor

fcecin commented Nov 21, 2025

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 🚀

Random idea: at some point we could even have alpha releases which could mean a fully-automated release from any commit in master that we want to have a release for (all the verification checkboxes would be fulfilled by a CI/CD script). So if we want something faster than beta (which still would have a bit of QA in it as Ivan suggests) we could do that as well later.

@Ivansete-status
Copy link
Collaborator

Good suggestion @fcecin (#3647 (comment))
Nevertheless, I think is not needed for now.
All the PRs should be merged with all Ci green.
Therefore, we can easily create an alpha release on demand, from the https://ci.infra.status.im/job/nim-waku/job/docker-manual/ job
( cc @darshankabariya )

@darshankabariya darshankabariya marked this pull request as ready for review November 21, 2025 11:21
Copy link
Contributor

@fcecin fcecin left a 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!!

Copy link
Collaborator

@Ivansete-status Ivansete-status left a 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!

@darshankabariya
Copy link
Contributor Author

darshankabariya commented Nov 25, 2025

Hi @Ivansete-status
I’ve addressed all your concerns regarding the release process. Could you please confirm this one ?
#3647 (comment)

Copy link
Collaborator

@Ivansete-status Ivansete-status left a 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 🙌

Copy link
Collaborator

@Ivansete-status Ivansete-status left a 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.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [ ] 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.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [ ] 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.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [ ] 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)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [ ] 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)

Comment on lines 71 to 75
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.
Copy link
Collaborator

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

Copy link
Contributor Author

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.

@Ivansete-status

Copy link
Collaborator

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

Copy link
Collaborator

@Ivansete-status Ivansete-status left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for it! 🙌
Make sure the zerokit change is not added and ci should be green without issues

Image

@darshankabariya darshankabariya merged commit 7eb1fdb into master Dec 1, 2025
2 checks passed
@darshankabariya darshankabariya deleted the release_process_update branch December 1, 2025 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants