Skip to content

Updated release process #4239

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 11 additions & 37 deletions release/README.md
Original file line number Diff line number Diff line change
@@ -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 <tag>` (example: `go run ./release/formula/main.go v1.0.0-beta.31`)
- `git add . && git commit -m "update homebrew to <tag>"`
- 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`.
Loading