|
| 1 | +# Release Process |
| 2 | + |
| 3 | +Kpack release process is composed of 3 phases: |
| 4 | +- [Development](#development) |
| 5 | +- [Feature Complete](#feature-complete) |
| 6 | +- [Release Finalization](#release-finalization) |
| 7 | + |
| 8 | +## Phases |
| 9 | + |
| 10 | +### Development |
| 11 | + |
| 12 | +Our development flow is detailed in [Development](DEVELOPMENT.md). |
| 13 | + |
| 14 | +### Feature Complete |
| 15 | + |
| 16 | +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. |
| 17 | + |
| 18 | +To produce the release candidate a maintainer will: |
| 19 | +- Create a new release branch in form `release/<MAYOR-VERSION>.<MINOR-VERSION>.<PATCH-VERSION>-rc.<NUMBER>` yielding a draft GitHub release to be published. |
| 20 | +- Publish the [GitHub release][release]: |
| 21 | + - Tag release branch as `v<MAYOR-VERSION>.<MINOR-VERSION>.<PATCH-VERSION>-rc.<NUMBER>`. |
| 22 | + - Release should be marked as "pre-release". |
| 23 | + - The GitHub release will contain the following: |
| 24 | + - **artifacts** |
| 25 | + - **release notes** |
| 26 | + - The release notes should be edited and cleaned |
| 27 | + |
| 28 | +### Release Finalization |
| 29 | + |
| 30 | +The maintainer will: |
| 31 | +- Create a new release branch in form `release/<MAYOR-VERSION>.<MINOR-VERSION>.<PATCH-VERSION>` yielding a draft GitHub release to be published. |
| 32 | +- Publish the [GitHub release][release] while tagging the release branch as `v<VERSION>`. |
| 33 | + - Tag release branch as `v<MAYOR-VERSION>.<MINOR-VERSION>.<PATCH-VERSION>`. |
| 34 | + - The GitHub release will contain the following: |
| 35 | + - **artifacts** |
| 36 | + - **release notes** |
| 37 | + |
| 38 | +And with that, you're done! |
| 39 | + |
| 40 | +## Release automation |
| 41 | + |
| 42 | +- The release candidate process is automated using [GitHub Actions][github-release]. The workflow is triggered by a push to a release branch. |
| 43 | +- The release finalization is manual step |
| 44 | + |
| 45 | +[release]: https://github.com/pivotal/kpack/releases |
| 46 | +[github-release]: https://github.com/pivotal/kpack/blob/main/.github/workflows/ci.yaml |
0 commit comments