From 18debca54c92933d7f10a13222f2c83dfeb61ecc Mon Sep 17 00:00:00 2001 From: Ciaran Johnston Date: Fri, 15 Aug 2025 10:57:25 +0100 Subject: [PATCH] Updated release process Signed-off-by: Ciaran Johnston --- release/README.md | 48 +++++++++++------------------------------------ 1 file changed, 11 insertions(+), 37 deletions(-) diff --git a/release/README.md b/release/README.md index 2256a8e422..cce927a9d1 100644 --- a/release/README.md +++ b/release/README.md @@ -1,42 +1,16 @@ # Releasing -## Steps - To cut a new kpt release perform the following: -- Ensure kpt is importing the latest dependent releases - - [cli-utils](https://github.com/kubernetes-sigs/cli-utils/tree/master/release) - - Within kustomize: - [kyaml](https://github.com/kubernetes-sigs/kustomize/blob/master/releasing) - - Within kustomize: - [cmd/config](https://github.com/kubernetes-sigs/kustomize/blob/master/releasing) - - Update `go.mod` file with correct versions of `cli-utils`, `kyaml`, and - `cmd/config` - - Run `make all` (which should update `go.sum` and run `go mod tidy`) - - Create a `kpt` PR with previous `go.mod` and `go.sum` changes, and submit. - [Example PR](https://github.com/kptdev/kpt/pull/594) -- Fetch the latest master changes to a clean branch - - `git checkout -b release` - - `git fetch upstream` - - `git reset --hard upstream/master` -- Tag the commit - - `git tag v1.0.0-(alpha|beta|rc).*` - - `git push upstream v1.0.0-(alpha|beta|rc).*` -- This will trigger a Github Action that will use goreleaser to make the - release. The result will be a github release in the draft state and upload - docker images to GCR. - - Verify that the release looks good. If it does, publish the release through - the github UI. -- Update the Homebrew release - - `go run ./release/formula/main.go ` (example: `go run ./release/formula/main.go v1.0.0-beta.31`) - - `git add . && git commit -m "update homebrew to "` - - create a PR for this change and merge it - - [example PR](https://github.com/kptdev/kpt/pull/331/commits/baf33d8ed214f2c5e106ec6e963ad736e5ff4d98#diff-d69e3adb302ee3e84814136422cbf872) - -## Artifacts +- Check that dependencies are up to date and that all required release content is in the main branch +- Navigate to [the project release page](https://github.com/kptdev/kpt/releases) and select "draft new release" +- Leave the target as "main", and create a new tag to match the release version + - Versioning follows [semantic versioning rules](http://semver.org/) + - Alpha and beta versions are used to make releases before content is fully stabilized + - Increment the number after "alpha" or "beta" by one when making this type of release - e.g. v1.0.0-beta.58 could come after v1.0.0-beta.57 +- Release title should be left blank - it will be auto-filled from the tag +- Click "Generate release notes" to auto-generate the content of the release. Edit this as appropriate to add extra context +- If the release is an alpha or beta release and there is already a stable version available, the "set as a pre-release" check-box should be checked. Otherwise, leave it checked as "set as the latest release" +- Check the "create a discussion for this release" check-box +- Click "publish" and then verify that the github action has run and the artefacts have been produced -Release artifacts such as binaries and images will be built automatically by the -Github Action. The binaries linked from the README.md docs will be automatically -updated because they point to the `latest` binaries which are updated for tagged -releases. Images created from the `main` branch will not be tagged with -`latest`.