mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-02 05:53:11 +00:00
chore: new release process ( beta and full ) (#3647)
This commit is contained in:
parent
c6cf34df06
commit
7eb1fdb0ac
56
.github/ISSUE_TEMPLATE/prepare_beta_release.md
vendored
Normal file
56
.github/ISSUE_TEMPLATE/prepare_beta_release.md
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
name: Prepare Beta Release
|
||||
about: Execute tasks for the creation and publishing of a new beta release
|
||||
title: 'Prepare beta release 0.0.0'
|
||||
labels: beta-release
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
Add appropriate release number to title!
|
||||
|
||||
For detailed info on the release process refer to https://github.com/waku-org/nwaku/blob/master/docs/contributors/release-process.md
|
||||
-->
|
||||
|
||||
### Items to complete
|
||||
|
||||
All items below are to be completed by the owner of the given release.
|
||||
|
||||
- [ ] Create release branch with major and minor only ( e.g. release/v0.X ) if it doesn't exist.
|
||||
- [ ] Assign release candidate tag to the release branch HEAD (e.g. `v0.X.0-beta-rc.0`, `v0.X.0-beta-rc.1`, ... `v0.X.0-beta-rc.N`).
|
||||
- [ ] Generate and edit release notes in CHANGELOG.md.
|
||||
|
||||
- [ ] **Waku test and fleets validation**
|
||||
- [ ] Ensure all the unit tests (specifically js-waku tests) are green against the release candidate.
|
||||
- [ ] Deploy the release candidate to `waku.test` only through [deploy-waku-test job](https://ci.infra.status.im/job/nim-waku/job/deploy-waku-test/) and wait for it to finish (Jenkins access required; ask the infra team if you don't have it).
|
||||
- After completion, disable [deployment job](https://ci.infra.status.im/job/nim-waku/) so that its version is not updated on every merge to master.
|
||||
- Verify the deployed version at https://fleets.waku.org/.
|
||||
- Confirm the container image exists on [Harbor](https://harbor.status.im/harbor/projects/9/repositories/nwaku/artifacts-tab).
|
||||
- [ ] Analyze Kibana logs from the previous month (since the last release was deployed) for possible crashes or errors in `waku.test`.
|
||||
- Most relevant logs are `(fleet: "waku.test" AND message: "SIGSEGV")`.
|
||||
- [ ] Enable again the `waku.test` fleet to resume auto-deployment of the latest `master` commit.
|
||||
|
||||
- [ ] **Proceed with release**
|
||||
|
||||
- [ ] Assign a final release tag (`v0.X.0-beta`) to the same commit that contains the validated release-candidate tag (e.g. `v0.X.0-beta-rc.N`) and submit a PR from the release branch to `master`.
|
||||
- [ ] Update [nwaku-compose](https://github.com/waku-org/nwaku-compose) and [waku-simulator](https://github.com/waku-org/waku-simulator) according to the new release.
|
||||
- [ ] Bump nwaku dependency in [waku-rust-bindings](https://github.com/waku-org/waku-rust-bindings) and make sure all examples and tests work.
|
||||
- [ ] Bump nwaku dependency in [waku-go-bindings](https://github.com/waku-org/waku-go-bindings) and make sure all tests work.
|
||||
- [ ] Create GitHub release (https://github.com/waku-org/nwaku/releases).
|
||||
- [ ] Submit a PR to merge the release branch back to `master`. Make sure you use the option "Merge pull request (Create a merge commit)" to perform the merge. Ping repo admin if this option is not available.
|
||||
|
||||
- [ ] **Promote release to fleets**
|
||||
- [ ] Ask the PM lead to announce the release.
|
||||
- [ ] 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/).
|
||||
|
||||
### Links
|
||||
|
||||
- [Release process](https://github.com/waku-org/nwaku/blob/master/docs/contributors/release-process.md)
|
||||
- [Release notes](https://github.com/waku-org/nwaku/blob/master/CHANGELOG.md)
|
||||
- [Fleet ownership](https://www.notion.so/Fleet-Ownership-7532aad8896d46599abac3c274189741?pvs=4#d2d2f0fe4b3c429fbd860a1d64f89a64)
|
||||
- [Infra-nim-waku](https://github.com/status-im/infra-nim-waku)
|
||||
- [Jenkins](https://ci.infra.status.im/job/nim-waku/)
|
||||
- [Fleets](https://fleets.waku.org/)
|
||||
- [Harbor](https://harbor.status.im/harbor/projects/9/repositories/nwaku/artifacts-tab)
|
||||
76
.github/ISSUE_TEMPLATE/prepare_full_release.md
vendored
Normal file
76
.github/ISSUE_TEMPLATE/prepare_full_release.md
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
---
|
||||
name: Prepare Full Release
|
||||
about: Execute tasks for the creation and publishing of a new full release
|
||||
title: 'Prepare full release 0.0.0'
|
||||
labels: full-release
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
Add appropriate release number to title!
|
||||
|
||||
For detailed info on the release process refer to https://github.com/waku-org/nwaku/blob/master/docs/contributors/release-process.md
|
||||
-->
|
||||
|
||||
### Items to complete
|
||||
|
||||
All items below are to be completed by the owner of the given release.
|
||||
|
||||
- [ ] Create release branch with major and minor only ( e.g. release/v0.X ) if it doesn't exist.
|
||||
- [ ] Assign release candidate tag to the release branch HEAD (e.g. `v0.X.0-rc.0`, `v0.X.0-rc.1`, ... `v0.X.0-rc.N`).
|
||||
- [ ] Generate and edit release notes in CHANGELOG.md.
|
||||
|
||||
- [ ] **Validation of release candidate**
|
||||
|
||||
- [ ] **Automated testing**
|
||||
- [ ] Ensure all the unit tests (specifically js-waku tests) are green against the release candidate.
|
||||
- [ ] Ask Vac-QA and Vac-DST to perform the available tests against the release candidate.
|
||||
- [ ] Vac-DST (an additional report is needed; see [this](https://www.notion.so/DST-Reports-1228f96fb65c80729cd1d98a7496fe6f))
|
||||
|
||||
- [ ] **Waku fleet testing**
|
||||
- [ ] Deploy the release candidate to `waku.test` and `waku.sandbox` fleets.
|
||||
- Start the [deployment job](https://ci.infra.status.im/job/nim-waku/) for both fleets and wait for it to finish (Jenkins access required; ask the infra team if you don't have it).
|
||||
- After completion, disable [deployment job](https://ci.infra.status.im/job/nim-waku/) so that its version is not updated on every merge to `master`.
|
||||
- Verify the deployed version at https://fleets.waku.org/.
|
||||
- Confirm the container image exists on [Harbor](https://harbor.status.im/harbor/projects/9/repositories/nwaku/artifacts-tab).
|
||||
- [ ] Search _Kibana_ logs from the previous month (since the last release was deployed) for possible crashes or errors in `waku.test` and `waku.sandbox`.
|
||||
- Most relevant logs are `(fleet: "waku.test" AND message: "SIGSEGV")` OR `(fleet: "waku.sandbox" AND message: "SIGSEGV")`.
|
||||
- [ ] Enable again the `waku.test` fleet to resume auto-deployment of the latest `master` commit.
|
||||
|
||||
- [ ] **Status fleet testing**
|
||||
- [ ] Deploy release candidate to `status.staging`
|
||||
- [ ] Perform [sanity check](https://www.notion.so/How-to-test-Nwaku-on-Status-12c6e4b9bf06420ca868bd199129b425) and log results as comments in this issue.
|
||||
- [ ] Connect 2 instances to `status.staging` fleet, one in relay mode, the other one in light client.
|
||||
- 1:1 Chats with each other
|
||||
- Send and receive messages in a community
|
||||
- Close one instance, send messages with second instance, reopen first instance and confirm messages sent while offline are retrieved from store
|
||||
- [ ] Perform checks based on _end user impact_
|
||||
- [ ] Inform other (Waku and Status) CCs to point their instances to `status.staging` for a few days. Ping Status colleagues on their Discord server or in the [Status community](https://status.app/c/G3kAAMSQtb05kog3aGbr3kiaxN4tF5xy4BAGEkkLwILk2z3GcoYlm5hSJXGn7J3laft-tnTwDWmYJ18dP_3bgX96dqr_8E3qKAvxDf3NrrCMUBp4R9EYkQez9XSM4486mXoC3mIln2zc-TNdvjdfL9eHVZ-mGgs=#zQ3shZeEJqTC1xhGUjxuS4rtHSrhJ8vUYp64v6qWkLpvdy9L9) (this is not a blocking point.)
|
||||
- [ ] Ask Status-QA to perform sanity checks (as described above) and checks based on _end user impact_; specify the version being tested
|
||||
- [ ] Ask Status-QA or infra to run the automated Status e2e tests against `status.staging`
|
||||
- [ ] Get other CCs' sign-off: they should comment on this PR, e.g., "Used the app for a week, no problem." If problems are reported, resolve them and create a new RC.
|
||||
- [ ] **Get Status-QA sign-off**, ensuring that the `status.test` update will not disturb ongoing activities.
|
||||
|
||||
- [ ] **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`).
|
||||
- [ ] Update [nwaku-compose](https://github.com/waku-org/nwaku-compose) and [waku-simulator](https://github.com/waku-org/waku-simulator) according to the new release.
|
||||
- [ ] Bump nwaku dependency in [waku-rust-bindings](https://github.com/waku-org/waku-rust-bindings) and make sure all examples and tests work.
|
||||
- [ ] Bump nwaku dependency in [waku-go-bindings](https://github.com/waku-org/waku-go-bindings) and make sure all tests work.
|
||||
- [ ] Create GitHub release (https://github.com/waku-org/nwaku/releases).
|
||||
- [ ] Submit a PR to merge the release branch back to `master`. Make sure you use the option "Merge pull request (Create a merge commit)" to perform the merge. Ping repo admin if this option is not available.
|
||||
|
||||
- [ ] **Promote release to fleets**
|
||||
- [ ] Ask the PM lead to announce the release.
|
||||
- [ ] Update infra config with any deprecated arguments or changed options.
|
||||
|
||||
### Links
|
||||
|
||||
- [Release process](https://github.com/waku-org/nwaku/blob/master/docs/contributors/release-process.md)
|
||||
- [Release notes](https://github.com/waku-org/nwaku/blob/master/CHANGELOG.md)
|
||||
- [Fleet ownership](https://www.notion.so/Fleet-Ownership-7532aad8896d46599abac3c274189741?pvs=4#d2d2f0fe4b3c429fbd860a1d64f89a64)
|
||||
- [Infra-nim-waku](https://github.com/status-im/infra-nim-waku)
|
||||
- [Jenkins](https://ci.infra.status.im/job/nim-waku/)
|
||||
- [Fleets](https://fleets.waku.org/)
|
||||
- [Harbor](https://harbor.status.im/harbor/projects/9/repositories/nwaku/artifacts-tab)
|
||||
72
.github/ISSUE_TEMPLATE/prepare_release.md
vendored
72
.github/ISSUE_TEMPLATE/prepare_release.md
vendored
@ -1,72 +0,0 @@
|
||||
---
|
||||
name: Prepare release
|
||||
about: Execute tasks for the creation and publishing of a new release
|
||||
title: 'Prepare release 0.0.0'
|
||||
labels: release
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
Add appropriate release number to title!
|
||||
|
||||
For detailed info on the release process refer to https://github.com/waku-org/nwaku/blob/master/docs/contributors/release-process.md
|
||||
-->
|
||||
|
||||
### Items to complete
|
||||
|
||||
All items below are to be completed by the owner of the given release.
|
||||
|
||||
- [ ] Create release branch
|
||||
- [ ] Assign release candidate tag to the release branch HEAD. e.g. v0.30.0-rc.0
|
||||
- [ ] Generate and edit releases notes in CHANGELOG.md
|
||||
- [ ] Review possible update of [config-options](https://github.com/waku-org/docs.waku.org/blob/develop/docs/guides/nwaku/config-options.md)
|
||||
- [ ] _End user impact_: Summarize impact of changes on Status end users (can be a comment in this issue).
|
||||
- [ ] **Validate release candidate**
|
||||
- [ ] Bump nwaku dependency in [waku-rust-bindings](https://github.com/waku-org/waku-rust-bindings) and make sure all examples and tests work
|
||||
|
||||
- [ ] Automated testing
|
||||
- [ ] Ensures js-waku tests are green against release candidate
|
||||
- [ ] Ask Vac-QA and Vac-DST to perform available tests against release candidate
|
||||
- [ ] Vac-QA
|
||||
- [ ] Vac-DST (we need additional report. see [this](https://www.notion.so/DST-Reports-1228f96fb65c80729cd1d98a7496fe6f))
|
||||
|
||||
- [ ] **On Waku fleets**
|
||||
- [ ] Lock `waku.test` fleet to release candidate version
|
||||
- [ ] Continuously stress `waku.test` fleet for a week (e.g. from `wakudev`)
|
||||
- [ ] Search _Kibana_ logs from the previous month (since last release was deployed), for possible crashes or errors in `waku.test` and `waku.sandbox`.
|
||||
- Most relevant logs are `(fleet: "waku.test" OR fleet: "waku.sandbox") AND message: "SIGSEGV"`
|
||||
- [ ] Run release candidate with `waku-simulator`, ensure that nodes connected to each other
|
||||
- [ ] Unlock `waku.test` to resume auto-deployment of latest `master` commit
|
||||
|
||||
- [ ] **On Status fleet**
|
||||
- [ ] Deploy release candidate to `status.staging`
|
||||
- [ ] Perform [sanity check](https://www.notion.so/How-to-test-Nwaku-on-Status-12c6e4b9bf06420ca868bd199129b425) and log results as comments in this issue.
|
||||
- [ ] Connect 2 instances to `status.staging` fleet, one in relay mode, the other one in light client.
|
||||
- [ ] 1:1 Chats with each other
|
||||
- [ ] Send and receive messages in a community
|
||||
- [ ] Close one instance, send messages with second instance, reopen first instance and confirm messages sent while offline are retrieved from store
|
||||
- [ ] Perform checks based _end user impact_
|
||||
- [ ] Inform other (Waku and Status) CCs to point their instance to `status.staging` for a few days. Ping Status colleagues from their Discord server or [Status community](https://status.app/c/G3kAAMSQtb05kog3aGbr3kiaxN4tF5xy4BAGEkkLwILk2z3GcoYlm5hSJXGn7J3laft-tnTwDWmYJ18dP_3bgX96dqr_8E3qKAvxDf3NrrCMUBp4R9EYkQez9XSM4486mXoC3mIln2zc-TNdvjdfL9eHVZ-mGgs=#zQ3shZeEJqTC1xhGUjxuS4rtHSrhJ8vUYp64v6qWkLpvdy9L9) (not blocking point.)
|
||||
- [ ] Ask Status-QA to perform sanity checks (as described above) + checks based on _end user impact_; do specify the version being tested
|
||||
- [ ] Ask Status-QA or infra to run the automated Status e2e tests against `status.staging`
|
||||
- [ ] Get other CCs sign-off: they comment on this PR "used app for a week, no problem", or problem reported, resolved and new RC
|
||||
- [ ] **Get Status-QA sign-off**. Ensuring that `status.test` update will not disturb ongoing activities.
|
||||
|
||||
- [ ] **Proceed with release**
|
||||
|
||||
- [ ] Assign a release tag to the same commit that contains the validated release-candidate tag
|
||||
- [ ] Create GitHub release
|
||||
- [ ] Deploy the release to DockerHub
|
||||
- [ ] Announce the release
|
||||
|
||||
- [ ] **Promote release to fleets**.
|
||||
- [ ] Update infra config with any deprecated arguments or changed options
|
||||
- [ ] [Deploy final release to `waku.sandbox` fleet](https://ci.infra.status.im/job/nim-waku/job/deploy-waku-sandbox)
|
||||
- [ ] [Deploy final release to `status.staging` fleet](https://ci.infra.status.im/job/nim-waku/job/deploy-shards-staging/)
|
||||
- [ ] [Deploy final release to `status.prod` fleet](https://ci.infra.status.im/job/nim-waku/job/deploy-shards-test/)
|
||||
|
||||
- [ ] **Post release**
|
||||
- [ ] Submit a PR from the release branch to master. Important to commit the PR with "create a merge commit" option.
|
||||
- [ ] Update waku-org/nwaku-compose with the new release version.
|
||||
- [ ] Update version in js-waku repo. [update only this](https://github.com/waku-org/js-waku/blob/7c0ce7b2eca31cab837da0251e1e4255151be2f7/.github/workflows/ci.yml#L135) by submitting a PR.
|
||||
@ -6,44 +6,52 @@ For more context, see https://trunkbaseddevelopment.com/branch-for-release/
|
||||
|
||||
## How to do releases
|
||||
|
||||
### Before release
|
||||
### Prerequisites
|
||||
|
||||
- All issues under the corresponding release [milestone](https://github.com/waku-org/nwaku/milestones) have been closed or, after consultation, deferred to the next release.
|
||||
- All submodules are up to date.
|
||||
> Updating submodules requires a PR (and very often several "fixes" to maintain compatibility with the changes in submodules). That PR process must be done and merged a couple of days before the release.
|
||||
|
||||
Ensure all items in this list are ticked:
|
||||
- [ ] All issues under the corresponding release [milestone](https://github.com/waku-org/nwaku/milestones) has been closed or, after consultation, deferred to a next release.
|
||||
- [ ] All submodules are up to date.
|
||||
> **IMPORTANT:** Updating submodules requires a PR (and very often several "fixes" to maintain compatibility with the changes in submodules). That PR process must be done and merged a couple of days before the release.
|
||||
> In case the submodules update has a low effort and/or risk for the release, follow the ["Update submodules"](./git-submodules.md) instructions.
|
||||
> If the effort or risk is too high, consider postponing the submodules upgrade for the subsequent release or delaying the current release until the submodules updates are included in the release candidate.
|
||||
- [ ] The [js-waku CI tests](https://github.com/waku-org/js-waku/actions/workflows/ci.yml) pass against the release candidate (i.e. nwaku latest `master`).
|
||||
> **NOTE:** This serves as a basic regression test against typical clients of nwaku.
|
||||
> The specific job that needs to pass is named `node_with_nwaku_master`.
|
||||
|
||||
### Performing the release
|
||||
> If the effort or risk is too high, consider postponing the submodules upgrade for the subsequent release or delaying the current release until the submodules updates are included in the release candidate.
|
||||
|
||||
### Release types
|
||||
|
||||
- **Full release**: follow the entire [Release process](#release-process--step-by-step).
|
||||
|
||||
- **Beta release**: skip just `6a` and `6c` steps from [Release process](#release-process--step-by-step).
|
||||
|
||||
- Choose the appropriate release process based on the release type:
|
||||
- [Full Release](../../.github/ISSUE_TEMPLATE/prepare_full_release.md)
|
||||
- [Beta Release](../../.github/ISSUE_TEMPLATE/prepare_beta_release.md)
|
||||
|
||||
### Release process ( step by step )
|
||||
|
||||
1. Checkout a release branch from master
|
||||
|
||||
```
|
||||
git checkout -b release/v0.1.0
|
||||
git checkout -b release/v0.X.0
|
||||
```
|
||||
|
||||
1. Update `CHANGELOG.md` and ensure it is up to date. Use the helper Make target to get PR based release-notes/changelog update.
|
||||
2. Update `CHANGELOG.md` and ensure it is up to date. Use the helper Make target to get PR based release-notes/changelog update.
|
||||
|
||||
```
|
||||
make release-notes
|
||||
```
|
||||
|
||||
1. Create a release-candidate tag with the same name as release and `-rc.N` suffix a few days before the official release and push it
|
||||
3. Create a release-candidate tag with the same name as release and `-rc.N` suffix a few days before the official release and push it
|
||||
|
||||
```
|
||||
git tag -as v0.1.0-rc.0 -m "Initial release."
|
||||
git push origin v0.1.0-rc.0
|
||||
git tag -as v0.X.0-rc.0 -m "Initial release."
|
||||
git push origin v0.X.0-rc.0
|
||||
```
|
||||
|
||||
This will trigger a [workflow](../../.github/workflows/pre-release.yml) which will build RC artifacts and create and publish a Github release
|
||||
This will trigger a [workflow](../../.github/workflows/pre-release.yml) which will build RC artifacts and create and publish a GitHub release
|
||||
|
||||
1. Open a PR from the release branch for others to review the included changes and the release-notes
|
||||
4. Open a PR from the release branch for others to review the included changes and the release-notes
|
||||
|
||||
1. In case additional changes are needed, create a new RC tag
|
||||
5. In case additional changes are needed, create a new RC tag
|
||||
|
||||
Make sure the new tag is associated
|
||||
with CHANGELOG update.
|
||||
@ -52,25 +60,57 @@ Ensure all items in this list are ticked:
|
||||
# Make changes, rebase and create new tag
|
||||
# Squash to one commit and make a nice commit message
|
||||
git rebase -i origin/master
|
||||
git tag -as v0.1.0-rc.1 -m "Initial release."
|
||||
git push origin v0.1.0-rc.1
|
||||
git tag -as v0.X.0-rc.1 -m "Initial release."
|
||||
git push origin v0.X.0-rc.1
|
||||
```
|
||||
|
||||
1. Validate the release. For the release validation process, please refer to the following [guide](https://www.notion.so/Release-Process-61234f335b904cd0943a5033ed8f42b4#47af557e7f9744c68fdbe5240bf93ca9)
|
||||
Similarly use v0.X.0-rc.2, v0.X.0-rc.3 etc. for additional RC tags.
|
||||
|
||||
1. Once the release-candidate has been validated, create a final release tag and push it.
|
||||
We also need to merge release branch back to master as a final step.
|
||||
6. **Validation of release candidate**
|
||||
|
||||
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 candidates with both teams.
|
||||
|
||||
> We need an additional report like [this](https://www.notion.so/DST-Reports-1228f96fb65c80729cd1d98a7496fe6f) specifically from the DST team.
|
||||
|
||||
6b. **Waku fleet testing**
|
||||
- Start job on `waku.sandbox` and `waku.test` [Deployment job](https://ci.infra.status.im/job/nim-waku/), wait for completion of the job. If it fails, then debug it.
|
||||
- After completion, disable [deployment job](https://ci.infra.status.im/job/nim-waku/) so that its version is not updated on every merge to `master`.
|
||||
- Verify at https://fleets.waku.org/ that the fleet is locked to the release candidate version.
|
||||
- Check if the image is created at [Harbor](https://harbor.status.im/harbor/projects/9/repositories/nwaku/artifacts-tab).
|
||||
- Search _Kibana_ logs from the previous month (since the last release was deployed) for possible crashes or errors in `waku.test` and `waku.sandbox`.
|
||||
- Most relevant logs are `(fleet: "waku.test" AND message: "SIGSEGV")` OR `(fleet: "waku.sandbox" AND message: "SIGSEGV")`.
|
||||
- Enable the `waku.test` fleet again to resume auto-deployment of the latest `master` commit.
|
||||
|
||||
6c. **Status fleet testing**
|
||||
- Deploy release candidate to `status.staging`
|
||||
- Perform [sanity check](https://www.notion.so/How-to-test-Nwaku-on-Status-12c6e4b9bf06420ca868bd199129b425) and log results as comments in this issue.
|
||||
- Connect 2 instances to `status.staging` fleet, one in relay mode, the other one in light client.
|
||||
- 1:1 Chats with each other
|
||||
- Send and receive messages in a community
|
||||
- Close one instance, send messages with second instance, reopen first instance and confirm messages sent while offline are retrieved from store
|
||||
- Perform checks based on _end-user impact_.
|
||||
- Inform other (Waku and Status) CCs to point their instances to `status.staging` for a few days. Ping Status colleagues from their Discord server or [Status community](https://status.app) (not a blocking point).
|
||||
- Ask Status-QA to perform sanity checks (as described above) and checks based on _end user impact_; specify the version being tested.
|
||||
- Ask Status-QA or infra to run the automated Status e2e tests against `status.staging`.
|
||||
- Get other CCs' sign-off: they should comment on this PR, e.g., "Used the app for a week, no problem." If problems are reported, resolve them and create a new RC.
|
||||
- **Get Status-QA sign-off**, ensuring that the `status.test` update will not disturb ongoing activities.
|
||||
|
||||
7. Once the release-candidate has been validated, create a final release tag and push it.
|
||||
We also need to merge the release branch back into master as a final step.
|
||||
|
||||
```
|
||||
git checkout release/v0.1.0
|
||||
git tag -as v0.1.0 -m "Initial release."
|
||||
git push origin v0.1.0
|
||||
git checkout release/v0.X.0
|
||||
git tag -as v0.X.0 -m "final release." (use v0.X.0-beta as the tag if you are creating a beta release)
|
||||
git push origin v0.X.0
|
||||
git switch master
|
||||
git pull
|
||||
git merge release/v0.1.0
|
||||
git merge release/v0.X.0
|
||||
```
|
||||
8. Update `waku-rust-bindings`, `waku-simulator` and `nwaku-compose` to use the new release.
|
||||
|
||||
1. Create a [Github release](https://github.com/waku-org/nwaku/releases) from the release tag.
|
||||
9. Create a [GitHub release](https://github.com/waku-org/nwaku/releases) from the release tag.
|
||||
|
||||
* Add binaries produced by the ["Upload Release Asset"](https://github.com/waku-org/nwaku/actions/workflows/release-assets.yml) workflow. Where possible, test the binaries before uploading to the release.
|
||||
|
||||
@ -80,22 +120,10 @@ We also need to merge release branch back to master as a final step.
|
||||
2. Deploy the release image to [Dockerhub](https://hub.docker.com/r/wakuorg/nwaku) by triggering [the manual Jenkins deployment job](https://ci.infra.status.im/job/nim-waku/job/docker-manual/).
|
||||
> Ensure the following build parameters are set:
|
||||
> - `MAKE_TARGET`: `wakunode2`
|
||||
> - `IMAGE_TAG`: the release tag (e.g. `v0.16.0`)
|
||||
> - `IMAGE_TAG`: the release tag (e.g. `v0.36.0`)
|
||||
> - `IMAGE_NAME`: `wakuorg/nwaku`
|
||||
> - `NIMFLAGS`: `--colors:off -d:disableMarchNative -d:chronicles_colors:none -d:postgres`
|
||||
> - `GIT_REF` the release tag (e.g. `v0.16.0`)
|
||||
3. Update the default nwaku image in [nwaku-compose](https://github.com/waku-org/nwaku-compose/blob/master/docker-compose.yml)
|
||||
4. Deploy the release to appropriate fleets:
|
||||
- Inform clients
|
||||
> **NOTE:** known clients are currently using some version of js-waku, go-waku, nwaku or waku-rs.
|
||||
> Clients are reachable via the corresponding channels on the Vac Discord server.
|
||||
> It should be enough to inform clients on the `#nwaku` and `#announce` channels on Discord.
|
||||
> Informal conversations with specific repo maintainers are often part of this process.
|
||||
- Check if nwaku configuration parameters changed. If so [update fleet configuration](https://www.notion.so/Fleet-Ownership-7532aad8896d46599abac3c274189741?pvs=4#d2d2f0fe4b3c429fbd860a1d64f89a64) in [infra-nim-waku](https://github.com/status-im/infra-nim-waku)
|
||||
- Deploy release to the `waku.sandbox` fleet from [Jenkins](https://ci.infra.status.im/job/nim-waku/job/deploy-waku-sandbox/).
|
||||
- Ensure that nodes successfully start up and monitor health using [Grafana](https://grafana.infra.status.im/d/qrp_ZCTGz/nim-waku-v2?orgId=1) and [Kibana](https://kibana.infra.status.im/goto/a7728e70-eb26-11ec-81d1-210eb3022c76).
|
||||
- If necessary, revert by deploying the previous release. Download logs and open a bug report issue.
|
||||
5. Submit a PR to merge the release branch back to `master`. Make sure you use the option `Merge pull request (Create a merge commit)` to perform such merge.
|
||||
> - `GIT_REF` the release tag (e.g. `v0.36.0`)
|
||||
|
||||
### Performing a patch release
|
||||
|
||||
@ -116,4 +144,14 @@ We also need to merge release branch back to master as a final step.
|
||||
|
||||
4. Once the release-candidate has been validated and changelog PR got merged, cherry-pick the changelog update from master to the release branch. Create a final release tag and push it.
|
||||
|
||||
5. Create a [Github release](https://github.com/waku-org/nwaku/releases) from the release tag and follow the same post-release process as usual.
|
||||
5. Create a [GitHub release](https://github.com/waku-org/nwaku/releases) from the release tag and follow the same post-release process as usual.
|
||||
|
||||
### Links
|
||||
|
||||
- [Release process](https://github.com/waku-org/nwaku/blob/master/docs/contributors/release-process.md)
|
||||
- [Release notes](https://github.com/waku-org/nwaku/blob/master/CHANGELOG.md)
|
||||
- [Fleet ownership](https://www.notion.so/Fleet-Ownership-7532aad8896d46599abac3c274189741?pvs=4#d2d2f0fe4b3c429fbd860a1d64f89a64)
|
||||
- [Infra-nim-waku](https://github.com/status-im/infra-nim-waku)
|
||||
- [Jenkins](https://ci.infra.status.im/job/nim-waku/)
|
||||
- [Fleets](https://fleets.waku.org/)
|
||||
- [Harbor](https://harbor.status.im/harbor/projects/9/repositories/nwaku/artifacts-tab)
|
||||
Loading…
x
Reference in New Issue
Block a user