From 53be2ea12238e0793d677a0e0b1e1589e0010781 Mon Sep 17 00:00:00 2001 From: Jonathan Innis Date: Fri, 15 Dec 2023 00:32:10 -0800 Subject: [PATCH] Add RELEASE.md documentation --- RELEASE.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 RELEASE.md diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000000..129012473d --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,34 @@ +# Release Process + +## Overview + +The Karpenter project is an SIG autoscaling project that has the following two components: +- Kubernetes Custom Resource Definitions (CRDs) +- Corresponding Go API in the form of [`sigs.k8s.io/karpenter`](https://pkg.go.dev/sigs.k8s.io/karpenter) Go package + +This repository is the home for both of the above components. + +## Versioning Strategy + +The versioning strategy for this project is covered in detail in [the release type section of the compatability documentation](https://karpenter.sh/docs/upgrading/compatibility/#release-types). + +## Releasing a New Version + +The following steps must be done by one of the [Karpenter Maintainers](https://github.com/kubernetes/org/blob/main/config/kubernetes-sigs/sig-autoscaling/teams.yaml): + +For a **MAJOR**, **MINOR**, or **RC** release: +- Verify the CI tests pass before continuing. +- Create a tag using the `HEAD` of the `release-vx.x` branch by using `git tag vx.x.x` +- Push the tag to upstream using `git push upstream vx.x.x` +- This tag will kick-off the [Release Workflow](https://github.com/kubernetes-sigs/karpenter/actions/workflows/release.yaml) which will auto-generate release notes into the repo's [Github releases](https://github.com/kubernetes-sigs/karpenter/releases). + +For a **PATCH** release: +- Create a new branch in the upstream repo similar to `release-vx.x`. +- Create a branch in your fork (origin) repo similar to `/release-vx.x.x`. Use the new branch + in the upcoming steps. +- Use `git` to cherry-pick all relevant PRs into your branch. +- Create a pull request of the `/release-vx.x.x` branch into the `release-vx.x` branch upstream. Wait for at least one maintainer/codeowner to provide a `lgtm`. +- Verify the CI tests pass and merge the PR into `release-vx.x`. +- Create a tag using the `HEAD` of the `release-vx.x` branch by using `git tag vx.x.x` +- Push the tag to upstream using `git push upstream vx.x.x` +- This tag will kick-off the [Release Workflow](https://github.com/kubernetes-sigs/karpenter/actions/workflows/release.yaml) which will auto-generate release notes into the repo's [Github releases](https://github.com/kubernetes-sigs/karpenter/releases). \ No newline at end of file