From f7b49fe5eabb5d68c539cea07efdca3d6eed02a1 Mon Sep 17 00:00:00 2001 From: Juan Bustamante Date: Thu, 18 May 2023 07:59:33 -0500 Subject: [PATCH] Adding release process documentation Signed-off-by: Juan Bustamante --- RELEASE.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 RELEASE.md diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 000000000..6415f7bdc --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,46 @@ +# Release Process + +Kpack release process is composed of 3 phases: +- [Development](#development) +- [Feature Complete](#feature-complete) +- [Release Finalization](#release-finalization) + +## Phases + +### Development + +Our development flow is detailed in [Development](DEVELOPMENT.md). + +### Feature Complete + +During this period, a **Release Candidate** (RC) is published and used for further User Acceptance testing (`UAT`). Furthermore, additional RCs may be published based on assessment by the `kpack` maintainers of the **impact**, **effort** and **risk** of including the changes in the upcoming release. Any other changes may be merged into the `main` branch through the normal process, and will make it into the next release. + +To produce the release candidate a maintainer will: +- Create a new release branch in form `release/..-rc.` yielding a draft GitHub release to be published. +- Publish the [GitHub release][release]: + - Tag release branch as `v..-rc.`. + - Release should be marked as "pre-release". + - The GitHub release will contain the following: + - **artifacts** + - **release notes** + - The release notes should be edited and cleaned + +### Release Finalization + +The maintainer will: +- Create a new release branch in form `release/..` yielding a draft GitHub release to be published. +- Publish the [GitHub release][release] while tagging the release branch as `v`. + - Tag release branch as `v..`. + - The GitHub release will contain the following: + - **artifacts** + - **release notes** + +And with that, you're done! + +## Release automation + +- The release candidate process is automated using [GitHub Actions][github-release]. The workflow is triggered by a push to a release branch. +- The release finalization is manual step + +[release]: https://github.com/pivotal/kpack/releases +[github-release]: https://github.com/pivotal/kpack/blob/main/.github/workflows/ci.yaml