Skip to content

Release 25.05.0 #3616

@Hardikl

Description

@Hardikl

The week before the release

  • Ensure CI is green
  • Create release branch from main to freeze commits, like so:
RELEASE=25.05.0
git fetch origin
git checkout origin/HEAD
git switch --create release/$RELEASE
git push origin release/$RELEASE
  • 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 25.05.0
RELEASE 1
BRANCH release/25.05.0
ASUP_MAKE_TARGET production
DOCKER_PUBLISH false
RUN_TEST true
OVERWRITE_DOCKER_LATEST_TAG false
RUN_TRIVY_SCAN true
  • Create a release branch for the harvest-metrics repo like so:
RELEASE=25.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
  • Ensure all issues for the release are tagged with status/testme and unassigned. Use gh or the GitHub UI to do this.
  • Use the release issue burn down list to verify issues are fixed. Move status/testme issues to status/open or status/done
  • Ensure that the release is validated against NABox.
  • Ensure that the release is validated against FSX.
  • Use Jenkins to create release artifacts for test machines
  • Create changelog
    • 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/v25.02.0...v25.05.0
    • Copy/paste the generated release notes and save them in a file pbpaste > ghrn_$RELEASE.md
    • 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)
      • Ensure all notable features are highlighted
      • Ensure any breaking changes are highlighted
      • Ensure any deprecations are highlighted
    • Generate changelog by running
go run pkg/changelog/main.go --title $RELEASE --highlights releaseHighlights_$RELEASE.md -r ghrn_$RELEASE.md | pbcopy
  • 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
  • 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=25.05.0
Field Value
VERSION 25.05.0
RELEASE 1
BRANCH release/25.05.0
ASUP_MAKE_TARGET production
DOCKER_PUBLISH true
RUN_TEST true
OVERWRITE_DOCKER_LATEST_TAG true
RUN_TRIVY_SCAN 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 25.05 NOT 25.05.0
mike deploy --push --update-aliases $SHORT latest
  • Merge release branch into main. The PR should use the chore: prefix

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions