Skip to content

Commit d9a6bfe

Browse files
authored
Release updates (#119)
* updates per my release process * expand and clarify a few steps in the release process Signed-off-by: Anthony Floeder <anthony.floeder@hpe.com> * - move discussion of nnf-mfu to the top of the table to emphasize that its version is used in other dependent submodules. - clarify the nnf-deploy `master` branch steps and merge * Add section for cloning a release Signed-off-by: Anthony Floeder <anthony.floeder@hpe.com> * Removed reference to update.sh script Signed-off-by: Anthony Floeder <anthony.floeder@hpe.com> --------- Signed-off-by: Anthony Floeder <anthony.floeder@hpe.com>
1 parent 56897d6 commit d9a6bfe

2 files changed

Lines changed: 74 additions & 40 deletions

File tree

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# NearNodeFlash Pages
22

3+
## Retrieve the submodules
4+
5+
There are references to files in other repos, so update the submodules for them.
6+
7+
```bash
8+
git submodule update external/nnf-dm
9+
```
10+
311
## Create mkdocs Environment
412

513
```bash

docs/repo-guides/release-nnf-sw/readme.md

Lines changed: 66 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,15 @@ part of `nnf-deploy`, but it should match the version number of `nnf-deploy`. Re
1818
other components.
1919

2020
- [NearNodeFlash/nnf-deploy](https://github.com/NearNodeFlash/nnf-deploy)
21+
2122
- [DataWorkflowServices/dws](https://github.com/DataWorkflowServices/dws)
22-
- [NearNodeFlash/lustre-fs-operator](https://github.com/NearNodeFlash/lustre-fs-operator)
2323
- [HewlettPackard/lustre-csi-driver](https://github.com/HewlettPackard/lustre-csi-driver)
24+
- [NearNodeFlash/lustre-fs-operator](https://github.com/NearNodeFlash/lustre-fs-operator)
2425
- [NearNodeFlash/nnf-mfu](https://github.com/NearNodeFlash/nnf-mfu)
2526
- [NearNodeFlash/nnf-sos](https://github.com/NearNodeFlash/nnf-sos)
2627
- [NearNodeFlash/nnf-dm](https://github.com/NearNodeFlash/nnf-dm)
2728
- [NearNodeFlash/nnf-integration-test](https://github.com/NearNodeFlash/nnf-integration-test)
29+
2830
- [NearNodeFlash/NearNodeFlash.github.io](https://github.com/NearNodeFlash/NearNodeFlash.github.io)
2931

3032
[nnf-ec](https://github.com/NearNodeFlash/nnf-ec) is vendored in as part of `nnf-sos` and does not
@@ -89,93 +91,117 @@ just an example.
8991
1. For `lustre-csi-driver`, `lustre-fs-operator`, `dws`, `nnf-sos`, and `nnf-dm` there are additional files that need to
9092
track the version number as well, which allow them to be installed with `kubectl apply -k`.
9193
92-
1. For `lustre-fs-operator`, `dws`, `nnf-sos`, and `nnf-dm` update `config/manager/kustomization.yaml` with the correct version.
93-
94-
2. For `lustre-csi-driver`, update `deploy/kubernetes/base/kustomization.yaml` and
95-
`charts/lustre-csi-driver/values.yaml` with the correct version.
96-
97-
2. If `nnf-mfu` was updated, multiple references in `nnf-dm` will need to be updated with the
98-
new version number for the `nnf-mfu` image:
99-
100-
1. In `Dockerfile` and `Makefile`, replace `NNFMU_VERSION` with the new version
101-
102-
2. In `config/manager/kustomization.yaml`, replace `nnf-mfu`'s `newTag: <X.Y.Z>`
94+
|Repo |Update|
95+
|---------------------|------|
96+
|`nnf-mfu` |The new version of `nnf-mfu` is referenced by the `NNFMFU` variable in several places:<br><br>`nnf-sos`<br>1. `Makefile` replace `NNFMFU` with `nnf-mfu's` tag.<br><br>`nnf-dm`<br>1. In `Dockerfile` and `Makefile`, replace `NNFMU_VERSION` with the new version.<br>2. In `config/manager/kustomization.yaml`, replace `nnf-mfu`'s `newTag: <X.Y.Z>.`|
97+
|`lustre-fs-operator` |update `config/manager/kustomization.yaml` with the correct version.|
98+
|`dws` |update `config/manager/kustomization.yaml` with the correct version.|
99+
|`nnf-sos` |update `config/manager/kustomization.yaml` with the correct version.|
100+
|`nnf-dm` |update `config/manager/kustomization.yaml` with the correct version.|
101+
|`lustre-csi-driver` |update `deploy/kubernetes/base/kustomization.yaml` and `charts/lustre-csi-driver/values.yaml` with the correct version.|
103102
104-
6. Create a Pull Request from your branch and **target the release branch**. When merging the Pull
103+
6. **Target the `releases/v0` branch** with a Pull Request from your branch. When merging the Pull
105104
Request, **you must use a Merge Commit.**
106105
107106
!!! note
108-
109-
**Do not** Rebase or Squash! Those actions will remove the records that Git uses to
107+
**Do not** Rebase or Squash! Those actions remove the records that Git uses to
110108
determine which commits have been merged, and then when the next release is created Git will
111109
treat everything like a conflict. Additionally, this will cause auto-generated release notes
112110
to include the previous release.
113111
114-
7. Once merged, update the release branch locally and then create an annotated tag:
112+
7. Once merged, update the release branch locally and create an annotated tag:
115113
116114
```shell
117115
git checkout releases/v0
116+
git pull
118117
git tag -a v0.0.3 -m "Release v0.0.3"
119118
git push origin --tags
120119
```
121120
122-
8. Now that there is a tag, a release can be created via the [GitHub CLI](https://cli.github.com/).
121+
8. Now that a tag exists, a release can be created via the [GitHub CLI](https://cli.github.com/).
123122
Alternatively, use the [Web UI](https://github.com/NearNodeFlash/nnf-dm/releases/new).
124123
125124
```bash
126125
gh release create --generate-notes --verify-tag -p v0.0.3 -t "Release v0.0.3"
127126
```
128127
129-
9. Repeat this process for each remaining component.
128+
9. GOTO Step 1 and repeat this process for each remaining component.
130129
131130
## Release `nnf-deploy`
132131
133-
Once the individual components are released, we need to update the submodules and
134-
`config/repositories.yaml` in the **master** branch before we start on the release branch. This
135-
makes sure that everything is now current on master.
132+
Once the individual components are released, we need to update the submodules
133+
in `nnf-deploy's` `master` branch before we create the release branch. This ensures
134+
that everything is current on `master` for `nnf-deploy`.
136135

137-
1. Update the submodules on master:
136+
1. Update the submodules for `nnf-deploy` on master:
138137

139138
```shell
139+
cd nnf-deploy
140140
git checkout master
141141
git pull
142-
./update.sh
142+
git submodule foreach git checkout master
143+
git submodule foreach git pull
143144
```
144145

145-
2. Update `config/repositories.yaml` and update the referenced versions for:
146-
147-
1. `lustre-csi-driver`
146+
2. Create a branch to capture the submodule changes for the PR to `master`
148147

149-
2. `lustre-fs-operator`
150-
151-
3. `nnf-mfu`
148+
```shell
149+
git checkout -b update-submodules
150+
```
152151

153152
3. Commit the changes and open a Pull Request against the `master` branch.
154153

155-
4. Once merged, follow steps 1-3 from the previous section to update the release branch with master.
154+
4. Once merged, follow steps 1-3 from the previous section to create a release branch off of `releases/v0` and
155+
update it with changes from `master`.
156156

157-
5. There will be conflicts on the submodules after step 3. This is expected. We will update the
157+
5. There will be conflicts for the submodules after step 3. **This is expected.** Update the
158158
submodules to the new tags and then commit the changes. If each tag was committed properly, the
159159
following command can do this for you:
160160

161161
```shell
162162
git submodule foreach 'git checkout `git describe --match="v*" HEAD`'
163163
```
164164

165-
Verify that each submodule is now at the proper tagged version.
165+
6. Verify that each submodule is now at the proper tagged version.
166+
167+
```shell
168+
git submodule
169+
```
170+
171+
7. Do a `git add` for each of the submodules.
172+
173+
8. Update `config/repositories.yaml` with the referenced versions for:
174+
175+
1. `lustre-csi-driver`
176+
2. `lustre-fs-operator`
177+
3. `nnf-mfu` (Search for NNFMFU_VERSION)
178+
179+
9. Tidy and make `nnf-deploy` to avoid embarrassment.
166180

167181
```shell
168-
git submodule status
182+
go mod tidy
183+
make
169184
```
170185

171-
6. Do a `git add` for each of the submodules.
186+
10. Do another `git add` for any changes, particularly `go.mod` and/or `go.sum`.
187+
188+
11. Verify that `git status` is happy with `nnf-deploy` and then finalize the merge
189+
from master by with a `git commit`.
190+
191+
12. Follow steps 6-8 from the previous section to finalize the release of `nnf-deploy`.
192+
193+
**The software is now released!**
194+
195+
## Clone a release
172196

173-
7. Run `go mod tidy` and then `make`. Do another `git add` for any changes, particularly`go.mod`
174-
and/or `go.sum`.
197+
The follow commands clone release `v0.0.7` into `nnf-deploy-v0.0.7`
175198

176-
8. Verify that `git status` is happy with `nnf-deploy` and then finalize the merge from master by
177-
doing a `git commit`.
199+
```shell
200+
export NNF_VERSION=v0.0.7
178201
179-
9. Follow steps 6-8 from the previous section to finalize the release of `nnf-deploy`.
202+
git clone --recurse-submodules git@github.com:NearNodeFlash/nnf-deploy nnf-deploy-$NNF_VERSION
203+
cd nnf-deploy-$NNF_VERSION
204+
git -c advice.detachedHead=false checkout $NNF_VERSION --recurse-submodules
180205
181-
The software is now released!
206+
git submodule status
207+
```

0 commit comments

Comments
 (0)