The week before the release
- [x] Ensure CI is green
- [x] Create release branch from main to freeze commits, like so:
RELEASE=24.05.0
git fetch origin
git checkout origin/HEAD
git switch --create release/$RELEASE
git push origin release/$RELEASE
- [x] If any changes are made in the harvest autosupport repository, please update the harvest-metrics repository
main
branch with the latest asup_linux_amd64
binary. This binary can be generated using Jenkins with the following parameters:
Field |
Value |
VERSION |
24.05.0 |
RELEASE |
1 |
BRANCH |
release/24.05.0 |
ASUP_MAKE_TARGET |
production |
DOCKER_PUBLISH |
false |
RUN_TEST |
true |
OVERWRITE_DOCKER_LATEST_TAG |
false |
- [x] Create a release branch for the harvest-metrics repo like so:
RELEASE=24.05.0
git clone https://github.com/NetApp/harvest-metrics.git
cd harvest-metrics
git checkout origin/HEAD
git switch --create release/$RELEASE
git push origin release/$RELEASE
- [x] Ensure all issues for the release are tagged with
status/testme
and unassigned. Use gh
or the GitHub UI to do this.
- [x] Use the release issue burn down list to verify issues are fixed. Move
status/testme
issues to status/open
or status/done
- [x] Ensure that the release is validated against NABox.
- [x] Ensure that the release is validated against FSX.
- [x] Use Jenkins to create release artifacts for test machines
- [x] Create changelog
- [x] Draft a new release. Use
v$RELEASE
for the tag and pick the release/$RELEASE branch. Click the Generate release notes
button and double check, at the bottom of the release notes, that the commits are across the correct range. For example: https://github.com/NetApp/harvest/compare/v24.02.0...v24.05.0
- [x] Copy/paste the generated release notes and save them in a file
pbpaste > ghrn_$RELEASE.md
- [x] Generate draft release highlights by executing
go run pkg/changelog/main.go new
. This will create a file named releaseHighlights_$RELEASE.md
. Edit that file to add content (example content)
- [x] Ensure all notable features are highlighted
- [x] Ensure any breaking changes are highlighted
- [x] Ensure any deprecations are highlighted
- [x] Generate changelog by running
go run pkg/changelog/main.go --title $RELEASE --highlights releaseHighlights_$RELEASE.md -r ghrn_$RELEASE.md | pbcopy
- [x] Open a PR against the release branch with the generated release notes for review
- [ ] PR approval
Update Metrics Documentation
bin/harvest generate metrics --poller POLLERNAME
- [x] Make sure docs look good and open a PR for review with
docs/ontap-metrics.md
changes
The day of the release
- [ ] Create a new build from Jenkins (details)
- [ ] Click
Build with Parameters
and fill in the appropriate fields. Here's an example, where RELEASE=24.05.0
Field |
Value |
VERSION |
24.05.0 |
RELEASE |
1 |
BRANCH |
release/24.05.0 |
ASUP_MAKE_TARGET |
production |
DOCKER_PUBLISH |
true |
RUN_TEST |
true |
OVERWRITE_DOCKER_LATEST_TAG |
true |
- [ ] Draft a new release. Use
v$RELEASE
for the tag and pick the release/$RELEASE branch.
- [ ] Type
$RELEASE
in the Release title
text input
- [ ] Open the
CHANGELOG.md
file, copy the single $RELEASE section at the top, and paste into the release notes text area.
- [ ] Ensure the
Set as the latest release
checkbox is selected
- [ ] Ensure the
Create a discussion for this release
checkbox is selected
- [ ] Upload the artifacts from the Jenkins build above and attach to the release
- [ ] Click
Publish release
button
- [ ] Announce on Discord
- [ ] Publish latest docs to netapp.github.io
- [ ] Make sure you're on the release branch
git switch release/$RELEASE
- [ ] The documentation version selector uses the short form of the release, so
24.05
NOT 24.05.0
mike deploy --push --update-aliases $SHORT latest
- [ ] Merge release branch into main. The PR should use the
chore:
prefix