|
| 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