Skip to content

Commit f9855dc

Browse files
chore: update release template
1 parent d423f1f commit f9855dc

File tree

3 files changed

+102
-80
lines changed

3 files changed

+102
-80
lines changed

.github/ISSUE_TEMPLATE/prepare_beta_release.md

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,36 +17,41 @@ For detailed info on the release process refer to https://github.com/waku-org/nw
1717

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

20-
- [ ] Create release branch
21-
- [ ] Assign release candidate tag to the release branch HEAD. e.g. v0.30.0-rc.0
22-
- [ ] Generate and edit releases notes in CHANGELOG.md
23-
- [ ] Review possible update of [config-options](https://github.com/waku-org/docs.waku.org/blob/develop/docs/guides/nwaku/config-options.md)
20+
- [ ] Create release branch ( e.g. release/v0.X.0 )
21+
- [ ] Assign release candidate tag to the release branch HEAD. e.g. v0.X.0-rc.0..N etc.
22+
- [ ] Generate and edit release notes in CHANGELOG.md
23+
- [ ] Review possible updates to [config-options](https://github.com/waku-org/docs.waku.org/blob/develop/docs/guides/nwaku/config-options.md)
2424
- [ ] _End user impact_: Summarize impact of changes on Status end users (can be a comment in this issue).
2525

26-
- [ ] **Waku fleets validation**
27-
- [ ] Lock `waku.test` and `waku.sandbox` fleets to release candidate version
28-
- [ ] Search _Kibana_ logs from the previous month (since last release was deployed), for possible crashes or errors in `waku.test` and `waku.sandbox`.
29-
- Most relevant logs are `(fleet: "waku.test" AND message: "SIGSEGV")` OR `(fleet: "waku.sandbox" AND message: "SIGSEGV")`
30-
- [ ] Unlock `waku.test` and `waku.sandbox` to resume auto-deployment of latest `master` commit
31-
32-
- [ ] Bump nwaku dependency in [waku-rust-bindings](https://github.com/waku-org/waku-rust-bindings) and make sure all examples and tests work
26+
- [ ] **Waku test and fleets validation**
27+
- [ ] Ensure all the unit tests (specifically js-waku tests) are green against the release candidate.
28+
- [ ] Lock `waku.test` and `waku.sandbox` fleets to the release candidate version. [Need Jenkins access to start the fleet release; if you don't have access, ask the infra team.]
29+
- 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.
30+
- Then lock both fleets to the release candidate version. (If you don't have access to lock fleets, ask the infra team to do it.)
31+
- Verify at https://fleets.waku.org/ that the fleet is locked to the release candidate version.
32+
- Check if the image is created at [harbor](https://harbor.status.im/harbor/projects/9/repositories/nwaku/artifacts-tab)
3333

34-
- [ ] Update according to the new release [waku-compose](https://github.com/waku-org/nwaku-compose) and [waku-simulator](https://github.com/waku-org/waku-simulator).
34+
- [ ] Analyze Kibana logs from the previous month (since the last release was deployed) for possible crashes or errors in `waku.test` and `waku.sandbox`.
35+
- Most relevant logs are `(fleet: "waku.test" AND message: "SIGSEGV")` OR `(fleet: "waku.sandbox" AND message: "SIGSEGV")`
36+
- [ ] Unlock `waku.test` and `waku.sandbox` to resume auto-deployment of the latest `master` commit
3537

3638
- [ ] **Proceed with release**
3739

38-
- [ ] Assign a release tag to the same commit that contains the validated release-candidate tag
39-
- [ ] Create GitHub release
40-
- [ ] Deploy the release to DockerHub
41-
- [ ] Announce the release
40+
- [ ] Assign a release tag ( v0.X.0-beta ) to the same commit that contains the validated release-candidate tag (e.g. v0.X.0-beta) and submit a PR from the release branch to master.
41+
- [ ] Bump nwaku dependency in [waku-rust-bindings](https://github.com/waku-org/waku-rust-bindings) and make sure all examples and tests work
42+
- [ ] Update [waku-compose](https://github.com/waku-org/nwaku-compose) and [waku-simulator](https://github.com/waku-org/waku-simulator) according to the new release.
43+
- [ ] Create GitHub release (https://github.com/waku-org/nwaku/releases)
4244

4345
- [ ] **Promote release to fleets**.
44-
- [ ] Update infra config with any deprecated arguments or changed options
45-
- [ ] [Deploy final release to `waku.sandbox` fleet](https://ci.infra.status.im/job/nim-waku/job/deploy-waku-sandbox)
46-
- [ ] [Deploy final release to `status.staging` fleet](https://ci.infra.status.im/job/nim-waku/job/deploy-shards-staging/)
47-
- [ ] [Deploy final release to `status.prod` fleet](https://ci.infra.status.im/job/nim-waku/job/deploy-shards-test/)
48-
49-
- [ ] **Post release**
50-
- [ ] Submit a PR from the release branch to master. Important to commit the PR with "create a merge commit" option.
51-
- [ ] Update waku-org/nwaku-compose with the new release version.
52-
- [ ] 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.
46+
- [ ] Ask the PM lead to announce the release.
47+
- [ ] Update infra config with any deprecated arguments or changed options.
48+
49+
### Links
50+
51+
- [Release process](https://github.com/waku-org/nwaku/blob/master/docs/contributors/release-process.md)
52+
- [Release notes](https://github.com/waku-org/nwaku/blob/master/CHANGELOG.md)
53+
- [Fleet ownership](https://www.notion.so/Fleet-Ownership-7532aad8896d46599abac3c274189741?pvs=4#d2d2f0fe4b3c429fbd860a1d64f89a64)
54+
- [Infra-nim-waku](https://github.com/status-im/infra-nim-waku)
55+
- [Jenkins](https://ci.infra.status.im/job/nim-waku/)
56+
- [Fleet](https://fleets.waku.org/)
57+
- [Harbor](https://harbor.status.im/harbor/projects/9/repositories/nwaku/artifacts-tab)

.github/ISSUE_TEMPLATE/prepare_full_release.md

Lines changed: 44 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -17,56 +17,61 @@ For detailed info on the release process refer to https://github.com/waku-org/nw
1717

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

20-
- [ ] Create release branch
21-
- [ ] Assign release candidate tag to the release branch HEAD. e.g. v0.30.0-rc.0
22-
- [ ] Generate and edit releases notes in CHANGELOG.md
23-
- [ ] Review possible update of [config-options](https://github.com/waku-org/docs.waku.org/blob/develop/docs/guides/nwaku/config-options.md)
20+
- [ ] Create release branch ( e.g. release/v0.X.0 )
21+
- [ ] Assign release candidate tag to the release branch HEAD. e.g. v0.X.0-rc.0..N etc.
22+
- [ ] Generate and edit release notes in CHANGELOG.md
23+
- [ ] Review possible updates to [config-options](https://github.com/waku-org/docs.waku.org/blob/develop/docs/guides/nwaku/config-options.md)
2424
- [ ] _End user impact_: Summarize impact of changes on Status end users (can be a comment in this issue).
2525

2626
- [ ] **Validation of release candidate**
2727

28-
- [ ] **Automated testing**
29-
- [ ] Ask Vac-QA and Vac-DST to perform available tests against release candidate
30-
- [ ] Vac-QA
31-
- [ ] Vac-DST (we need additional report. see [this](https://www.notion.so/DST-Reports-1228f96fb65c80729cd1d98a7496fe6f))
28+
- [ ] **Automated testing**
29+
- [ ] Ensure all the unit tests (specifically js-waku tests) are green against the release candidate.
30+
- [ ] Ask Vac-QA and Vac-DST to perform the available tests against the release candidate
31+
- [ ] Vac-DST (an additional report is needed; see [this](https://www.notion.so/DST-Reports-1228f96fb65c80729cd1d98a7496fe6f))
3232

33-
- [ ] **Waku fleet testing**
34-
- [ ] Lock `waku.test` and `waku.sandbox` fleets to release candidate version
35-
- [ ] Search _Kibana_ logs from the previous month (since last release was deployed), for possible crashes or errors in `waku.test` and `waku.sandbox`.
33+
- [ ] **Waku fleet testing**
34+
- [ ] Lock `waku.test` and `waku.sandbox` fleets to the release candidate version. [ Need jenkins access to start fleet release, if you don't have ask infra team ]
35+
- 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.
36+
- Then lock both fleets to the release candidate version. (If you don't have access to lock fleets, ask the infra team to do it.)
37+
- Verify at https://fleets.waku.org/ that the fleet is locked to the release candidate version.
38+
- Check if the image is created at [harbor](https://harbor.status.im/harbor/projects/9/repositories/nwaku/artifacts-tab)
39+
- [ ] Search _Kibana_ logs from the previous month (since the last release was deployed) for possible crashes or errors in `waku.test` and `waku.sandbox`.
3640
- Most relevant logs are `(fleet: "waku.test" AND message: "SIGSEGV")` OR `(fleet: "waku.sandbox" AND message: "SIGSEGV")`
37-
- [ ] Unlock `waku.test` and `waku.sandbox` to resume auto-deployment of latest `master` commit
41+
- [ ] Unlock `waku.test` and `waku.sandbox` to resume auto-deployment of the latest `master` commit
3842

3943
- [ ] **Status fleet testing**
40-
- [ ] Deploy release candidate to `status.staging`
41-
- [ ] Perform [sanity check](https://www.notion.so/How-to-test-Nwaku-on-Status-12c6e4b9bf06420ca868bd199129b425) and log results as comments in this issue.
42-
- [ ] Connect 2 instances to `status.staging` fleet, one in relay mode, the other one in light client.
43-
- [ ] 1:1 Chats with each other
44-
- [ ] Send and receive messages in a community
45-
- [ ] Close one instance, send messages with second instance, reopen first instance and confirm messages sent while offline are retrieved from store
46-
- [ ] Perform checks based _end user impact_
47-
- [ ] 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.)
48-
- [ ] Ask Status-QA to perform sanity checks (as described above) + checks based on _end user impact_; do specify the version being tested
44+
- [ ] Deploy release candidate to `status.staging`
45+
- [ ] Perform [sanity check](https://www.notion.so/How-to-test-Nwaku-on-Status-12c6e4b9bf06420ca868bd199129b425) and log results as comments in this issue.
46+
- [ ] Connect 2 instances to `status.staging` fleet, one in relay mode, the other one in light client.
47+
- 1:1 Chats with each other
48+
- Send and receive messages in a community
49+
- Close one instance, send messages with second instance, reopen first instance and confirm messages sent while offline are retrieved from store
50+
- [ ] Perform checks based on _end user impact_
51+
- [ ] 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.)
52+
- [ ] Ask Status-QA to perform sanity checks (as described above) and checks based on _end user impact_; specify the version being tested
4953
- [ ] Ask Status-QA or infra to run the automated Status e2e tests against `status.staging`
50-
- [ ] Get other CCs sign-off: they comment on this PR "used app for a week, no problem", or problem reported, resolved and new RC
51-
- [ ] **Get Status-QA sign-off**. Ensuring that `status.test` update will not disturb ongoing activities.
52-
53-
- [ ] Bump nwaku dependency in [waku-rust-bindings](https://github.com/waku-org/waku-rust-bindings) and make sure all examples and tests work
54-
55-
- [ ] Update according to the new release [waku-compose](https://github.com/waku-org/nwaku-compose) and [waku-simulator](https://github.com/waku-org/waku-simulator).
54+
- [ ] 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.
55+
- [ ] **Get Status-QA sign-off**, ensuring that the `status.test` update will not disturb ongoing activities.
5656

5757
- [ ] **Proceed with release**
58-
- [ ] Assign a release tag to the same commit that contains the validated release-candidate tag
59-
- [ ] Create GitHub release
60-
- [ ] Deploy the release to DockerHub
61-
- [ ] Announce the release
58+
59+
- [ ] Assign a release tag ( v0.X.0 ) to the same commit that contains the validated release-candidate tag (e.g. v0.X.0-beta)
60+
- [ ] Submit a PR from the release branch to master. It is important to commit the PR using the "Create a merge commit" option.
61+
- [ ] Bump nwaku dependency in [waku-rust-bindings](https://github.com/waku-org/waku-rust-bindings) and make sure all examples and tests work
62+
- [ ] Update [waku-compose](https://github.com/waku-org/nwaku-compose) and [waku-simulator](https://github.com/waku-org/waku-simulator) according to the new release.
63+
- [ ] Create GitHub release (https://github.com/waku-org/nwaku/releases)
6264

6365
- [ ] **Promote release to fleets**.
64-
- [ ] Update infra config with any deprecated arguments or changed options
65-
- [ ] [Deploy final release to `waku.sandbox` fleet](https://ci.infra.status.im/job/nim-waku/job/deploy-waku-sandbox)
66-
- [ ] [Deploy final release to `status.staging` fleet](https://ci.infra.status.im/job/nim-waku/job/deploy-shards-staging/)
67-
- [ ] [Deploy final release to `status.prod` fleet](https://ci.infra.status.im/job/nim-waku/job/deploy-shards-test/)
66+
- [ ] Ask for release announcement to PM lead.
67+
- [ ] Update infra config with any deprecated arguments or changed options.
68+
69+
### Links
6870

69-
- [ ] **Post release**
70-
- [ ] Submit a PR from the release branch to master. Important to commit the PR with "create a merge commit" option.
71-
- [ ] Update waku-org/nwaku-compose with the new release version.
72-
- [ ] 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.
71+
- [Release process](https://github.com/waku-org/nwaku/blob/master/docs/contributors/release-process.md)
72+
- [Release notes](https://github.com/waku-org/nwaku/blob/master/CHANGELOG.md)
73+
- [Fleet ownership](https://www.notion.so/Fleet-Ownership-7532aad8896d46599abac3c274189741?pvs=4#d2d2f0fe4b3c429fbd860a1d64f89a64)
74+
- [Infra-nim-waku](https://github.com/status-im/infra-nim-waku)
75+
- [Jenkins](https://ci.infra.status.im/job/nim-waku/)
76+
- [Fleet](https://fleets.waku.org/)
77+
- [Harbor](https://harbor.status.im/harbor/projects/9/repositories/nwaku/artifacts-tab)

docs/contributors/release-process.md

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,22 @@ For more context, see https://trunkbaseddevelopment.com/branch-for-release/
1616
1717
> 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.
1818
19+
### Release types
20+
21+
- **Full release**: follow the entire [Release process](#release-process--step-by-step).
22+
23+
- **Beta release**: skip just `6a` and `6c` steps from [Release process](#release-process--step-by-step).
24+
25+
- choose the appropriate release process based on the release type.
26+
[Full Release](../../.github/ISSUE_TEMPLATE/prepare_full_release.md),
27+
[Beta Release](../../.github/ISSUE_TEMPLATE/prepare_beta_release.md)
28+
1929
### Release process ( step by step )
2030

2131
1. Checkout a release branch from master
2232

2333
```
24-
git checkout -b release/v0.1.0
34+
git checkout -b release/v0.X.0
2535
```
2636
2737
2. Update `CHANGELOG.md` and ensure it is up to date. Use the helper Make target to get PR based release-notes/changelog update.
@@ -33,8 +43,8 @@ For more context, see https://trunkbaseddevelopment.com/branch-for-release/
3343
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
3444
3545
```
36-
git tag -as v0.1.0-rc.0 -m "Initial release."
37-
git push origin v0.1.0-rc.0
46+
git tag -as v0.X.0-rc.0 -m "Initial release."
47+
git push origin v0.X.0-rc.0
3848
```
3949
4050
This will trigger a [workflow](../../.github/workflows/pre-release.yml) which will build RC artifacts and create and publish a GitHub release
@@ -50,26 +60,28 @@ For more context, see https://trunkbaseddevelopment.com/branch-for-release/
5060
# Make changes, rebase and create new tag
5161
# Squash to one commit and make a nice commit message
5262
git rebase -i origin/master
53-
git tag -as v0.1.0-rc.1 -m "Initial release."
54-
git push origin v0.1.0-rc.1
63+
git tag -as v0.X.0-rc.1 -m "Initial release."
64+
git push origin v0.X.0-rc.1
5565
```
5666
67+
Similarly use v0.X.0-rc.2, v0.X.0-rc.3 etc. for additional RC tags.
68+
5769
6. **Validation of release candidate**
5870
59-
- **Automated testing**
60-
- Ensure js-waku tests are green against the release candidate
71+
6a. **Automated testing**
72+
- Ensure all the unit tests (specifically js-waku tests) are green against the release candidate.
6173
- Ask Vac-QA and Vac-DST to run their available tests against the release candidate, share all release candidate with both team.
6274
6375
> We need additional report like [this](https://www.notion.so/DST-Reports-1228f96fb65c80729cd1d98a7496fe6f) specificly from DST team.
6476
65-
- **Waku fleet testing**
77+
6b. **Waku fleet testing**
6678
- Lock `waku.test` and `waku.sandbox` fleet to release candidate version
67-
- Search _Kibana_ logs from the previous month (since last release was deployed), for possible crashes or errors in `waku.test` and `waku.sandbox`.
79+
- Analyze kibana logs for possible crashes or errors in `waku.test` and `waku.sandbox`. ( 2-3 day for beta release and 6-7 day for full release)
6880
- Most relevant logs are `(fleet: "waku.test" AND message: "SIGSEGV")` OR `(fleet: "waku.sandbox" AND message: "SIGSEGV")`
6981
- Run release candidate with `waku-simulator`, ensure that nodes connected to each other
7082
- Unlock `waku.test` to resume auto-deployment of latest `master` commit
7183
72-
- **Status fleet testing**
84+
6c. **Status fleet testing**
7385
- Deploy release candidate to `status.staging`
7486
- Perform [sanity check](https://www.notion.so/How-to-test-Nwaku-on-Status-12c6e4b9bf06420ca868bd199129b425) and log results as comments in this issue.
7587
- Connect 2 instances to `status.staging` fleet, one in relay mode, the other one in light client.
@@ -87,12 +99,12 @@ For more context, see https://trunkbaseddevelopment.com/branch-for-release/
8799
We also need to merge the release branch back into master as a final step.
88100
89101
```
90-
git checkout release/v0.1.0
91-
git tag -as v0.1.0 -m "Initial release."
92-
git push origin v0.1.0
102+
git checkout release/v0.X.0
103+
git tag -as v0.X.0 -m "final release." ( use v0.X.0-beta as the tag if you are creating a beta release)
104+
git push origin v0.X.0
93105
git switch master
94106
git pull
95-
git merge release/v0.1.0
107+
git merge release/v0.X.0
96108
```
97109
8. Update `waku-rust-bindings`, `waku-simulator` and `nwaku-compose` to use the new release.
98110
@@ -106,10 +118,10 @@ We also need to merge the release branch back into master as a final step.
106118
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/).
107119
> Ensure the following build parameters are set:
108120
> - `MAKE_TARGET`: `wakunode2`
109-
> - `IMAGE_TAG`: the release tag (e.g. `v0.16.0`)
121+
> - `IMAGE_TAG`: the release tag (e.g. `v0.36.0`)
110122
> - `IMAGE_NAME`: `wakuorg/nwaku`
111123
> - `NIMFLAGS`: `--colors:off -d:disableMarchNative -d:chronicles_colors:none -d:postgres`
112-
> - `GIT_REF` the release tag (e.g. `v0.16.0`)
124+
> - `GIT_REF` the release tag (e.g. `v0.36.0`)
113125
3. Bump the nwaku dependency in [nwaku-compose](https://github.com/waku-org/nwaku-compose/blob/master/docker-compose.yml)
114126
4. Deploy the release to appropriate fleets:
115127
- Inform clients

0 commit comments

Comments
 (0)