|
1 | 1 | # Release Process |
2 | 2 |
|
3 | | -Kpack release process is composed of 3 phases: |
4 | | -- [Development](#development) |
5 | | -- [Feature Complete](#feature-complete) |
6 | | -- [Release Finalization](#release-finalization) |
| 3 | +Kpack release process: |
| 4 | +- [Releasing a new Major/Minor Version](#releasing-a-new-majorminor-version) |
| 5 | +- [Releasing a new Patch Version](#releasing-a-new-patch-version) |
| 6 | +- [Release Automation](#release-automation) |
7 | 7 |
|
8 | | -## Phases |
9 | 8 |
|
10 | | -### Development |
| 9 | +## Releasing a new Major/Minor Version |
11 | 10 |
|
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. |
| 11 | +To produce a major/minor release from `main` a maintainer will: |
| 12 | +- Create a new release branch in form `release/<MAJOR-VERSION>.<MINOR-VERSION>.x` from the `main` branch |
| 13 | +- Tag release branch as `v<MAYOR-VERSION>.<MINOR-VERSION>.<PATCH-VERSION>` or `v<MAYOR-VERSION>.<MINOR-VERSION>.<PATCH-VERSION>-rc.<NUMBER>` for RC versions |
| 14 | +- GitHub Actions will generate a draft GitHub release. |
20 | 15 | - 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". |
| 16 | + - For RCs, the release should be marked as "pre-release" |
| 17 | + >NOTE: 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. |
23 | 18 | - The GitHub release will contain the following: |
24 | 19 | - **artifacts** |
25 | 20 | - **release notes** |
| 21 | + - **asset checksums** |
26 | 22 | - The release notes should be edited and cleaned |
27 | 23 |
|
28 | | -### Release Finalization |
| 24 | +## Releasing a new Patch Version |
| 25 | + |
| 26 | +>Patches may be released for backwards-compatible bug fixes and/or dependency bumps to resolve vulnerabilities. There is no patch guarantees for anything other than the latest minor version. |
29 | 27 |
|
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>`. |
| 28 | +To produce a patch release from an existing `release` branch a maintainer will: |
| 29 | +- PR changes into the release branch corresponding to the minor that will be patched. |
| 30 | +- Tag release branch as `v<MAYOR-VERSION>.<MINOR-VERSION>.<PATCH-VERSION>` or `v<MAYOR-VERSION>.<MINOR-VERSION>.<PATCH-VERSION>-rc.<NUMBER>` for RC versions |
| 31 | +- GitHub Actions will generate a draft GitHub release. |
| 32 | +- Publish the [GitHub release][release]: |
| 33 | + - For RCs, the release should be marked as "pre-release" |
| 34 | + >NOTE: 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. |
34 | 35 | - The GitHub release will contain the following: |
35 | 36 | - **artifacts** |
36 | 37 | - **release notes** |
37 | | - |
38 | | -And with that, you're done! |
| 38 | + - **asset checksums** |
| 39 | + - The release notes should be edited and cleaned |
39 | 40 |
|
40 | 41 | ## Release automation |
41 | 42 |
|
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 candidate process is automated using [GitHub Actions][github-release]. The workflow is triggered by a pushed version tag. |
43 | 44 | - The release finalization is manual step |
44 | 45 |
|
45 | 46 | [release]: https://github.com/pivotal/kpack/releases |
|
0 commit comments