Skip to content

Commit 1fbce71

Browse files
authored
Add in the Relase process for Templates and Installer (#91)
Signed-off-by: Maysun J Faisal <[email protected]>
1 parent 6aa826e commit 1fbce71

File tree

2 files changed

+96
-0
lines changed

2 files changed

+96
-0
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,7 @@ For more information on how to contribute, please read our contributing [guide](
2020
## Troubleshooting
2121

2222
For more information about troubleshooting tips, please read our troubleshooting [guide](./docs/TROUBLESHOOTING.md).
23+
24+
## Release
25+
26+
For more information about the release process, please read our release [guide](./docs/RELEASE.md).

docs/RELEASE.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# RELEASE
2+
3+
## Versioning
4+
5+
Software Templates has three kinds of releases: `v[major].[minor].[patch]`.
6+
7+
**Minor** releases are planned and will typically include minor bug fixes, security patches, regular feature changes, and prior **Patch** changes on the previous minor. RHDH version updates / changes would be considered regular feature changes.
8+
9+
**Patch** releases only happen if a release has to be cut outside the normal release schedule and should only include critical bug fixes and critical security patches which do not break the current release. These are tied to the last **Minor** release and are strongly recommended to end users on the same **Minor** version to update when these releases are available.
10+
11+
**Major** releases happen when changes towards the templates could be incompatible with RHDH, GitOps service, Pipelines service, or the target cluster. Typically major releases will include breaking features or changes with no guarantee of compatibility (usually part of a milestone) and changes from previous **Minor** and **Patch** releases.
12+
13+
## Schedule
14+
15+
Ad hoc for now.
16+
17+
### RHDH Releases
18+
19+
New releases of RHDH would trigger the effort of updating and making the necessary changes to support that new version of RHDH, when all migration changes are completed a new minor release of the components included in these changes will be cut.
20+
21+
## Changes
22+
23+
Release changes will consist of the merged PRs since the previous release.
24+
25+
### Noteworthy changes
26+
27+
Noteworthy changes should have the following criteria:
28+
- Features should only include changes which directly impacts the user
29+
- Bug Fixes should include changes reported by the team or outside the team
30+
- Security Patches should include all changes
31+
- Documentation should highlight additions of note
32+
33+
Changes within PRs can be highlighted as well with the PR as a base change.
34+
35+
## Release Separation
36+
37+
When **Major** & **Minor** releases happen there needs to be separation between the previous release and new release. In addition to tagging, we will also use multiple branches to track the states of the currently maintained major/minor releases.
38+
39+
## Checklist
40+
41+
> **Note**: Follow this checklist for any of the following repositories:
42+
> - [redhat-ai-dev/ai-lab-app](https://github.com/redhat-ai-dev/ai-lab-app)
43+
> - [redhat-ai-dev/ai-lab-samples](https://github.com/redhat-ai-dev/ai-lab-samples)
44+
> - [redhat-ai-dev/rhdh-pipelines](https://github.com/redhat-ai-dev/rhdh-pipelines)
45+
> - [redhat-ai-dev/ai-lab-template](https://github.com/redhat-ai-dev/ai-lab-template)
46+
> - [redhat-ai-dev/ai-rhdh-installer](https://github.com/redhat-ai-dev/ai-rhdh-installer)
47+
>
48+
> **Note**: If any of the following has a release there must be the same kind of release for [redhat-ai-dev/ai-lab-template](https://github.com/redhat-ai-dev/ai-lab-template):
49+
> - [redhat-ai-dev/ai-lab-app](https://github.com/redhat-ai-dev/ai-lab-app)
50+
> - [redhat-ai-dev/ai-lab-samples](https://github.com/redhat-ai-dev/ai-lab-samples)
51+
> - [redhat-ai-dev/rhdh-pipelines](https://github.com/redhat-ai-dev/rhdh-pipelines)
52+
>
53+
> **Note**: If there is a major or minor release of [redhat-ai-dev/ai-lab-template](https://github.com/redhat-ai-dev/ai-lab-template), the same kind of release must be created for [redhat-ai-dev/ai-rhdh-installer](https://github.com/redhat-ai-dev/ai-rhdh-installer).
54+
55+
- [ ] Create a new fork branch v[major].[minor].[patch] from main or the corresponding previous release branch.
56+
- Note: Target this branch for each repository for the following steps
57+
- [ ] Prepare release changes
58+
59+
> **Software Templates** (release changes)
60+
>
61+
> - Set the following to the release tag under the [properties](../properties) file
62+
> - PIPELINE_BRANCH
63+
> - SAMPLE_BRANCH
64+
> - GITOPS_BRANCH
65+
> - Set the pipelinesascode.tekton.dev properties under [docker pull request](../skeleton/source-repo/.tekton/docker-pull-request.yaml) and [docker push](../skeleton/source-repo/.tekton/docker-push.yaml) tekton configs under the skeleton to reference the release tag instead of the main branch
66+
> - Run generate.sh to apply the changes to all of the templates
67+
68+
> **RHDH Installer** (release changes)
69+
>
70+
> - Set the [version field under the helm chart](https://github.com/redhat-ai-dev/ai-rhdh-installer/blob/main/chart/Chart.yaml) of the RHDH Installer
71+
> - Update [catalog reference](https://github.com/redhat-ai-dev/ai-rhdh-installer/blob/main/catalogs.yaml) to point to the target Software Template release branch
72+
73+
- [ ] Create commit for the above release changes and push into your fork branch
74+
- [ ] Create new PR from your fork branch targeting the new release branch release-v[major].[minor].x
75+
- [ ] Follow release testing [checklist](https://docs.google.com/document/d/1v3G5R_1zf6Yfc1u5NHGNYbhRvYiWJYFI_JR-kpyR-uM/edit?tab=t.0#heading=h.73iqyy3e9ozp)
76+
- [ ] Rebase your fork branch from main if changes are done
77+
- [ ] Merge changes from PR when everything checks out
78+
- [ ] Create release under GitHub repository, generate [release notes](#release-notes)
79+
- [ ] For a Major/Minor release, announce version release on Slack channels and mailing lists using [templates](#release-announcement-template):
80+
- Slack channels
81+
- #forum-rhdh-plugins-and-ai
82+
- Mailing Lists
83+
- dev-ai
84+
85+
86+
## Release Notes
87+
88+
Utilize the GitHub Release section changelog feature to generate release notes. You will have to click on the button and select the previous release to compare it to. As an example, check out the release v0.9.1 on the Templates repository.
89+
90+
## Release Announcement Template
91+
92+
Please refer to the Google Doc in the Team Drive under Software Templates directory.

0 commit comments

Comments
 (0)