Skip to content

Commit 0a9a6c1

Browse files
committed
update releasing doc
Update releasing doc to be more clear, update the container build process to match current workflow, highlight the verify-release.sh usage more etc. Signed-off-by: Tuomo Tanskanen <[email protected]>
1 parent 95bc0d6 commit 0a9a6c1

File tree

1 file changed

+55
-43
lines changed

1 file changed

+55
-43
lines changed

docs/releasing.md

+55-43
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,25 @@ Things you should check before making a release:
1414
- Check the
1515
[Metal3 release process](https://github.com/metal3-io/metal3-docs/blob/main/processes/releasing.md)
1616
for high-level process and possible follow-up actions
17-
- Verify CAPI go module is uplifted in root, `api/` and `test/` go modules and
18-
`cluster-api/test` module in `test/` go module. Prior art:
19-
[#1157](https://github.com/metal3-io/cluster-api-provider-metal3/pull/1157)
20-
- Verify controller Go modules use latest corresponding CAPI modules. Prior art:
21-
[#1145](https://github.com/metal3-io/cluster-api-provider-metal3/pull/1145)
22-
- Verify BMO's `apis` and `pkg/hardwareutils` dependencies are the latest. Prior
23-
art:
24-
[#1163](https://github.com/metal3-io/cluster-api-provider-metal3/pull/1163)
25-
- Uplift IPAM `api` dependency,
26-
[container image version](https://github.com/metal3-io/cluster-api-provider-metal3/blob/main/config/ipam/image_patch.yaml)
27-
, and
28-
[manifest resource](https://github.com/metal3-io/cluster-api-provider-metal3/blob/main/config/ipam/kustomization.yaml)
29-
. Prior art:
30-
[#999](https://github.com/metal3-io/cluster-api-provider-metal3/pull/999)
31-
- Verify any other direct or indirect dependency is uplifted to close any
32-
public vulnerabilities
33-
34-
Use the `./hack/verify-release.sh` script as helper to identify possible
35-
issues to be addressed before creating any release tags.
17+
- Use the `./hack/verify-release.sh` script as helper to identify possible
18+
issues to be addressed before creating any release tags. It verifies issues
19+
like:
20+
- Verify CAPI go module is uplifted in root, `api/` and `test/` go modules and
21+
`cluster-api/test` module in `test/` go module. Prior art:
22+
[#1157](https://github.com/metal3-io/cluster-api-provider-metal3/pull/1157)
23+
- Verify controller Go modules use latest corresponding CAPI modules. Prior art:
24+
[#1145](https://github.com/metal3-io/cluster-api-provider-metal3/pull/1145)
25+
- Verify BMO's `apis` and `pkg/hardwareutils` dependencies are the latest. Prior
26+
art:
27+
[#1163](https://github.com/metal3-io/cluster-api-provider-metal3/pull/1163)
28+
- Uplift IPAM `api` dependency,
29+
[container image version](https://github.com/metal3-io/cluster-api-provider-metal3/blob/main/config/ipam/image_patch.yaml)
30+
, and
31+
[manifest resource](https://github.com/metal3-io/cluster-api-provider-metal3/blob/main/config/ipam/kustomization.yaml)
32+
. Prior art:
33+
[#999](https://github.com/metal3-io/cluster-api-provider-metal3/pull/999)
34+
- Verify any other direct or indirect dependency is uplifted to close any
35+
public vulnerabilities
3636

3737
## Permissions
3838

@@ -51,7 +51,11 @@ should not be given permissions directly.
5151

5252
## Process
5353

54-
CAPM3 uses [semantic versioning](https://semver.org). For version `v1.x.y`:
54+
CAPM3 uses [semantic versioning](https://semver.org).
55+
56+
- Regular releases: `v1.x.y`
57+
- Beta releases: `v1.x.y-beta.z`
58+
- Release candidate releases: `v1.x.y-rc.z`
5559

5660
### Repository setup
5761

@@ -85,11 +89,12 @@ This triggers two things:
8589
page, and draft release will be visible on top of the
8690
[Releases](https://github.com/metal3-io/cluster-api-provider-metal3/releases)
8791
page.
88-
- Quay starts building release image with the release tag. Make sure the
89-
release is built successfully in
90-
[Quay builds page](https://quay.io/repository/metal3-io/cluster-api-provider-metal3?tab=builds).
91-
If the release tag build is not visible, check if the build trigger is
92-
enabled. Quay disables build trigger sometimes when build has failed few times.
92+
- GH action `build-images-action` starts building release image with the release
93+
tag in Jenkins, and it gets pushed to Quay. Make sure the release tag is
94+
visible in
95+
[Quay tags page](https://quay.io/repository/metal3-io/cluster-api-provider-metal3?tab=tags).
96+
If the release tag build is not visible, check if the action has failed and
97+
retrigger as necessary.
9398

9499
We also need to create one or more tags for the Go modules ecosystem:
95100

@@ -103,17 +108,36 @@ We also need to create one or more tags for the Go modules ecosystem:
103108
otherwise it might create incorrect release notes. Push both of the tags to
104109
`origin`.
105110

111+
### Release notes
112+
113+
Next step is to clean up the release note manually.
114+
115+
- Check for duplicates, reverts, and incorrect classifications of PRs, and
116+
whatever release creation tagged to be manually checked.
117+
- For any superseded PRs (like same dependency uplifted multiple times, or
118+
commit revertions) that provide no value to the release, move them to
119+
Superseded section. This way the changes are acknowledged to be part of the
120+
release, but not overwhelming the important changes contained by the release.
121+
- If the release you're making is not a new major release, new minor release,
122+
or a new patch release from the latest release branch, uncheck the box for
123+
latest release.
124+
- If it is a release candidate (RC) or a pre-release, tick pre-release box.
125+
- Save the release note as a draft, and have others review it.
126+
106127
### Release artifacts
107128

108129
We need to verify all release artifacts are correctly built or generated by
109-
the release workflow. For a release, we should have the following artifacts:
130+
the release workflow.
131+
132+
We can use `./hack/verify-release.sh` to check for existence of release artifacts,
133+
which should include the following:
110134

111135
Git tags pushed:
112136

113137
- Primary release tag: `v1.x.y`
114138
- Go module tags: `api/v1.x.y`, `test/v1.x.y`
115139

116-
Container images built and tagged at Quay registry:
140+
Container images at Quay registry:
117141

118142
- [cluster-api-provider-metal3:v1.x.y](https://quay.io/repository/metal3-io/cluster-api-provider-metal3?tab=tags)
119143

@@ -124,23 +148,10 @@ Files included in the release page:
124148
- A cluster template - `cluster-template.yaml`
125149
- A file containing an example of variables to set - `example_variables.rc`
126150

127-
### Release notes
128-
129-
Next step is to clean up the release note manually.
151+
### Make the release
130152

131-
- Check for duplicates, reverts, and incorrect classifications of PRs, and
132-
whatever release creation tagged to be manually checked.
133-
- For any superseded PRs (like same dependency uplifted multiple times, or
134-
commit revertions) that provide no value to the release, move them to
135-
Superseded section. This way the changes are acknowledged to be part of the
136-
release, but not overwhelming the important changes contained by the release.
137-
- If the release you're making is not a new major release, new minor release,
138-
or a new patch release from the latest release branch, uncheck the box for
139-
latest release.
140-
- If it is a release candidate (RC) or a pre-release, tick pre-release box.
141-
- Save the release note as a draft, and have others review it. Use the
142-
`./hack/verify-release.sh` script as helper to verify release content.
143-
- Publish the release.
153+
After everything is checked out, hit the `Publish` button your GitHub draft
154+
release!
144155

145156
## Post-release actions for new release branches
146157

@@ -155,6 +166,7 @@ keywords are implemented in Jenkins JJB, and in project-infra, and have been run
155166
at least once in the PR targeting the branch in question.
156167

157168
NOTE: Branch protection rules need repository `admin` rights to modify.
169+
Organization admins and security team members can help you.
158170

159171
### Update README.md and build badges
160172

0 commit comments

Comments
 (0)