From 9bf7aaf6cd5607a02964165c64a174b587cfd700 Mon Sep 17 00:00:00 2001 From: Kenichi Omichi Date: Wed, 1 Jun 2022 00:23:03 -0700 Subject: [PATCH] Update RELEASE.md (#8884) This updates RELEASE.md file to understand the release process easily based on hands-on experience. --- RELEASE.md | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index d5322a6e5..3cedb76eb 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -2,17 +2,18 @@ The Kubespray Project is released on an as-needed basis. The process is as follows: -1. An issue is proposing a new release with a changelog since the last release +1. An issue is proposing a new release with a changelog since the last release. Please see [a good sample issue](https://github.com/kubernetes-sigs/kubespray/issues/8325) 2. At least one of the [approvers](OWNERS_ALIASES) must approve this release 3. The `kube_version_min_required` variable is set to `n-1` -4. Remove hashes for [EOL versions](https://github.com/kubernetes/sig-release/blob/master/releases/patch-releases.md) of kubernetes from `*_checksums` variables. -5. An approver creates [new release in GitHub](https://github.com/kubernetes-sigs/kubespray/releases/new) using a version and tag name like `vX.Y.Z` and attaching the release notes -6. An approver creates a release branch in the form `release-X.Y` -7. The corresponding version of [quay.io/kubespray/kubespray:vX.Y.Z](https://quay.io/repository/kubespray/kubespray) and [quay.io/kubespray/vagrant:vX.Y.Z](https://quay.io/repository/kubespray/vagrant) docker images are built and tagged -8. The `KUBESPRAY_VERSION` variable is updated in `.gitlab-ci.yml` -9. The release issue is closed -10. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] Kubespray $VERSION is released` -11. The topic of the #kubespray channel is updated with `vX.Y.Z is released! | ...` +4. Remove hashes for [EOL versions](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md) of kubernetes from `*_checksums` variables. +5. Create the release note with [Kubernetes Release Notes Generator](https://github.com/kubernetes/release/blob/master/cmd/release-notes/README.md). See the following `Release note creation` section for the details. +6. An approver creates [new release in GitHub](https://github.com/kubernetes-sigs/kubespray/releases/new) using a version and tag name like `vX.Y.Z` and attaching the release notes +7. An approver creates a release branch in the form `release-X.Y` +8. The corresponding version of [quay.io/kubespray/kubespray:vX.Y.Z](https://quay.io/repository/kubespray/kubespray) and [quay.io/kubespray/vagrant:vX.Y.Z](https://quay.io/repository/kubespray/vagrant) docker images are built and tagged +9. The `KUBESPRAY_VERSION` variable is updated in `.gitlab-ci.yml` +10. The release issue is closed +11. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] Kubespray $VERSION is released` +12. The topic of the #kubespray channel is updated with `vX.Y.Z is released! | ...` ## Major/minor releases and milestones @@ -46,3 +47,17 @@ The Kubespray Project is released on an as-needed basis. The process is as follo then Kubespray v2.1.0 may be bound to only minor changes to `kube_version`, like v1.5.1 and *any* changes to other components, like etcd v4, or calico 1.2.3. And Kubespray v3.x.x shall be bound to `kube_version: 2.x.x` respectively. + +## Release note creation + +You can create a release note with: + +```shell +export GITHUB_TOKEN= +export ORG=kubernetes-sigs +export REPO=kubespray +release-notes --start-sha --end-sha --dependencies=false --output=/tmp/kubespray-release-note --required-author="" +``` + +If the release note file(/tmp/kubespray-release-note) contains "### Uncategorized" pull requests, those pull requests don't have a valid kind label(`kind/feature`, etc.). +It is necessary to put a valid label on each pull request and run the above release-notes command again to get a better release note)