harvest icon indicating copy to clipboard operation
harvest copied to clipboard

Release 24.05.0

Open rahulguptajss opened this issue 9 months ago • 0 comments

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

rahulguptajss avatar May 14 '24 13:05 rahulguptajss