Skip to content

Commit 0777796

Browse files
prudhvigodithizelinhopensearch-ci-bot
authoredAug 7, 2023
OpenSearch Release Process (#3635)
Signed-off-by: Zelin Hao <zelinhao@amazon.com> Signed-off-by: Prudhvi Godithi <pgodithi@amazon.com> Signed-off-by: opensearch-ci <opensearch-infra@amazon.com> Co-authored-by: Zelin Hao <zelinhao@amazon.com> Co-authored-by: opensearch-ci <83309141+opensearch-ci-bot@users.noreply.github.com>
1 parent 89cec67 commit 0777796

File tree

4 files changed

+680
-95
lines changed

4 files changed

+680
-95
lines changed
 

‎.github/ISSUE_TEMPLATE/release_template.md

+101-61
Original file line numberDiff line numberDiff line change
@@ -13,90 +13,130 @@ I noticed that a manifest was automatically created in [manifests/{{ env.VERSION
1313

1414
## This Release Issue
1515

16-
This issue captures the state of the OpenSearch release, its assignee is responsible for driving the release. Please contact them or @mention them on this issue for help. There are linked issues on components of the release where individual components can be tracked. More details are included in the Maintainers [Release owner](https://github.com/opensearch-project/opensearch-build/blob/main/MAINTAINERS.md#release-owner) section.
16+
This issue captures the state of the OpenSearch release, its assignee (Release Manager) is responsible for driving the release. Please contact them or @mention them on this issue for help. There are linked issues on components of the release where individual components can be tracked. For more information check the the [Release Process OpenSearch Guide](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md).
1717

18-
## Release Steps
18+
</p>
19+
</details>
1920

20-
There are several steps to the release process, these steps are completed as the whole release and components that are behind present risk to the release. The release owner completes the tasks in this ticket, whereas component owners resolve tasks on their ticket in their repositories.
21+
Please refer to the following link for the release version dates: [Release Schedule and Maintenance Policy](https://opensearch.org/releases.html).
2122

22-
Steps have completion dates for coordinating efforts between the components of a release; components can start as soon as they are ready far in advance of a future release.
23+
### [Preparation](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#preparation)
2324

24-
### Component List
25+
- [ ] [Release manager](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-manager) assigned.
26+
- [ ] Existence of label in each component repo. For more information check the [release-label](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-label) section.
27+
- [ ] [Increase the build frequency](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#increase-the-build-frequency).
28+
- [ ] [Release Issue](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-issue).
2529

26-
To aid in understanding the state of the release there is a table with status indicating each component state. This is updated based on the status of the component issues.
30+
### [Campaigns](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#campaigns)
2731

28-
</p>
29-
</details>
32+
- [ ] [Component Release Issue](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#component-release-issue).
33+
- [ ] [Release Campaigns](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-campaigns).
3034

31-
### Preparation
35+
### [Release Branch and Version Increment](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-branch-readiness) - _Ends __REPLACE_RELEASE-minus-14-days__
3236

33-
- [ ] Assign this issue to a release owner.
34-
- [ ] Declare a pencils down date for new features to be merged.
35-
- [ ] __REPLACE_RELEASE-minus-14-days__ is pencils down date for feature freeze.
36-
- [ ] Update the Campaigns section to include monitoring campaigns during this release.
37-
- [ ] Update this issue so all `__REPLACE_RELEASE-__` placeholders have actual dates.
38-
- [ ] Document any new quality requirements or changes.
39-
- [ ] Finalize scope and feature set and update [the Public Roadmap](https://github.com/orgs/opensearch-project/projects/1).
40-
- [ ] [Create a release issue in every component repo](https://github.com/opensearch-project/opensearch-plugins/blob/main/META.md#create-an-issue-in-all-plugin-repos) based on [component release issue template](https://github.com/opensearch-project/opensearch-build/blob/main/.github/ISSUE_TEMPLATE/component_release_template.md) and link back to this issue, update Components section with these links.
41-
- [ ] Ensure the label is created in each component repo for this new version, and the next minor release. [Create a version label](https://github.com/opensearch-project/opensearch-plugins/blob/main/META.md#create-or-update-labels-in-all-plugin-repos)
42-
- [ ] Ensure that all release issues created above are assigned to an owner in the component team.
43-
- [ ] Increase the build frequency for the this release from once a day (H 1 * * *) to once every hour (H/60 * * * *) in [jenkinsFile](https://github.com/opensearch-project/opensearch-build/blob/main/jenkins/check-for-build.jenkinsfile).
37+
- [ ] [Core Release Branch](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#core).
38+
- [ ] [Core Version Increment](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#core-version-increment).
39+
- [ ] [Components Release Branch](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#components).
40+
- [ ] [Components Version Increment](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#components-version-increment).
4441

45-
### Campaigns
42+
### [Feature Freeze](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#code-complete-and-feature-freeze) - _Ends __REPLACE_RELEASE-minus-12-days__
4643

47-
__REPLACE with OpenSearch wide initiatives to improve quality and consistency.__
44+
- [ ] OpenSearch / OpenSearch-Dashboards core and components teams finalize their features.
4845

49-
### Release Branch - _Ends __REPLACE_RELEASE-minus-14-days__
46+
### [Code Complete](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#code-complete-and-feature-freeze) - _Ends __REPLACE_RELEASE-minus-10-days___
5047

51-
- [ ] Component versions are auto-incremented to {{ env.VERSION }} version.
52-
- [ ] Plugins team to ensure working CI in component repositories and merge the version increment PRs.
53-
- [ ] OpenSearch / OpenSearch-Dashboards core cut branch `<MajorVersion>.<MinorVersion>` early.
54-
- [ ] All component repos create `<MajorVersion>.<MinorVersion>` branch for the release.
48+
- [ ] Mark this as done once the [Code Complete](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#code-complete-and-feature-freeze) is reviewed.
49+
- [ ] Create/Verify pull requests to add each component to relase input [manifests/{{ env.VERSION }}/opensearch-{{ env.VERSION }}.yml](/opensearch-project/opensearch-build/tree/main/manifests/{{ env.VERSION }}/opensearch-{{ env.VERSION }}.yml) and [manifests/{{ env.VERSION }}/opensearch-dashboards-{{ env.VERSION }}.yml](/opensearch-project/opensearch-build/tree/main/manifests/{{ env.VERSION }}/opensearch-dashboards-{{ env.VERSION }}.yml).
5550

56-
### Feature Freeze - _Ends __REPLACE_RELEASE-minus-12-days__
51+
### [Release Candidate Creation and Testing](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-candidate-creation-and-testing) - _Ends __REPLACE_RELEASE-minus-6-days___
5752

58-
- [ ] OpenSearch / OpenSearch-Dashboards core and components teams finalize their features.
59-
- [ ] Create Jenkins workflows that run daily snapshot builds for [OpenSearch](https://build.ci.opensearch.org/job/distribution-build-opensearch/) and [OpenSearch Dashboards](https://build.ci.opensearch.org/job/distribution-build-opensearch-dashboards/).
60-
- [ ] Make pull requests to add each component to [manifests/{{ env.VERSION }}/opensearch-{{ env.VERSION }}.yml](/opensearch-project/opensearch-build/tree/main/manifests/{{ env.VERSION }}/opensearch-{{ env.VERSION }}.yml) and [manifests/{{ env.VERSION }}/opensearch-dashboards-{{ env.VERSION }}.yml](/opensearch-project/opensearch-build/tree/main/manifests/{{ env.VERSION }}/opensearch-dashboards-{{ env.VERSION }}.yml) with the corresponding checks.
53+
- [ ] [Generate Release Candidate](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-candidate).
54+
- [ ] [Integ Test TAR](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#integ-test-tar).
55+
- [ ] [Integ Test RPM](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#integ-test-rpm).
56+
- [ ] [Docker Build and Scan](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#docker-build-and-scan).
57+
- [ ] [Backwards Compatibility Tests](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#backwards-compatibility-tests).
58+
- [ ] [Windows Integration Test](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#windows-integration-test).
59+
- [ ] [Broadcast and Communication](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#broadcast-and-communication).
60+
- [ ] [Release Candidate Lock](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-candidate-lock).
61+
62+
### [Performance testing validation](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#benchmark-tests) - _Ends __REPLACE_RELEASE-minus-6-days___
6163

62-
### Code Complete - _Ends __REPLACE_RELEASE-minus-10-days___
64+
- [ ] Post the benchmark-tests
65+
- [ ] Longevity tests do not show any issues.
6366

64-
- [ ] Code Complete: Make sure that the code for this specific version of the release is ready and the branch corresponding to this release has been added to this release version manifest.
65-
- [ ] Verify pull requests to add each component to [manifests/{{ env.VERSION }}/opensearch-{{ env.VERSION }}.yml](/opensearch-project/opensearch-build/tree/main/manifests/{{ env.VERSION }}/opensearch-{{ env.VERSION }}.yml) and [manifests/{{ env.VERSION }}/opensearch-dashboards-{{ env.VERSION }}.yml](/opensearch-project/opensearch-build/tree/main/manifests/{{ env.VERSION }}/opensearch-dashboards-{{ env.VERSION }}.yml) have been merged.
66-
- [ ] Gather, review and combine the release notes from components repositories.
67+
### [Pre Release](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#pre-release) - _Ends __REPLACE_RELEASE-minus-1-days___
6768

68-
### Release testing - _Ends __REPLACE_RELEASE-minus-6-days___
69+
- [ ] [Release Labeled Issues](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-labeled-issues).
70+
- [ ] [Go or No-Go](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#go-or-no-go).
71+
- [ ] [Promote Repos](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#promote-repos).
72+
- [ ] [Promote artifacts](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#promote-artifacts).
73+
- [ ] [Release Notes](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-notes).
6974

70-
- [ ] Declare a release candidate build, and provide the instructions with the release candidates for teams on testing (__REPLACE_RELEASE-minus-8-days__).
71-
- [ ] Stop builds for this version of OpenSearch and/or OpenSearch Dashboards in order to avoid accidental commits going in unknowingly. Restart only if necessary else manually run the build workflow and declare new release candidate.
72-
- [ ] After generate the release candidates, raise PR to lock input manifest refs of both OS and OSD builds with the commit ids from distribution manifest of the release candidates.
73-
- [ ] Sanity Testing (__REPLACE_RELEASE-minus-8-days__ - __REPLACE_RELEASE-minus-6-days__): Sanity testing and fixing of critical issues found by teams. Teams test their components within the distribution, ensuring integration, backwards compatibility, and perf tests pass.
74-
- [ ] Publish all test results in the comments of this issue.
75+
### [Release](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#main-release) - _Ends {__REPLACE_RELEASE-day}_
7576

76-
### Performance testing validation - _Ends __REPLACE_RELEASE-minus-6-days___
77+
- [ ] [Maven Promotion](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#maven-promotion).
78+
- [ ] [Docker Promotion](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#docker-promotion).
79+
- [ ] [Release Validation](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-validation).
80+
- [ ] [Collaboration with the Project Management Team](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#collaboration-with-the-project-management-team).
7781

78-
- [ ] Performance tests do not show a regression.
79-
- [ ] Longevity tests do not show any issues.
82+
### [Release Checklist](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-checklist).
8083

81-
### Release - _Ends {__REPLACE_RELEASE-day}_
84+
<br>
85+
<details><summary>Release Checklist</summary>
86+
<p>
8287

83-
- [ ] Verify [all issues labeled `v{{ env.VERSION }}` in all projects](https://github.com/opensearch-project/project-meta#find-labeled-issues) have been resolved.
84-
- [ ] Complete [documentation](https://github.com/opensearch-project/documentation-website) for this release.
85-
- [ ] Author [blog post](https://github.com/opensearch-project/project-website) for this release.
86-
- [ ] __REPLACE_RELEASE-minus-1-day - Publish this release on [opensearch.org](https://opensearch.org/downloads.html).
87-
- [ ] __REPLACE_RELEASE-day - Publish a [blog post](https://github.com/opensearch-project/project-website) - release is launched!
88+
### Pre-Release activities
89+
- [ ] Promote Repos.
90+
- - [ ] OS
91+
- - [ ] OSD
92+
- [ ] Promote Artifacts.
93+
- - [ ] Windows
94+
- - [ ] Linux Debian
95+
- - [ ] Linux RPM
96+
- - [ ] Linux TAR
97+
- [ ] Consolidated Release Notes.
98+
99+
### Release activities
100+
- [ ] Docker Promotion.
101+
- [ ] Release Validation part 1.
102+
- - [ ] OpenSearch and OpenSearch Dashboard Validation.
103+
- - [ ] Validate the native plugin installation.
104+
- [ ] Merge consolidated release notes PR.
105+
- [ ] Website and Documentation Changes.
106+
- - [ ] Merge staging website PR.
107+
- - [ ] Promote the website changes to prod.
108+
- - [ ] Add website alert.
109+
- [ ] Release Validation part 2.
110+
- - [ ] Validate the artifact download URL's and signatures.
111+
- [ ] Release Validation part 3.
112+
- - [ ] Trigger the validation build (Search for `Completed validation for <>` in the logs).
113+
- [ ] Maven Promotion.
114+
- [ ] Publish blog posts.
115+
- [ ] Advertise on Social Media.
116+
- [ ] Post on public slack and Github Release issue.
117+
118+
### Post-Release activities
119+
- [ ] Release Tags.
120+
- [ ] Input Manifest Update.
121+
- [ ] Decrease the Build Frequency.
122+
- [ ] OpenSearch Build Release notes.
123+
- [ ] Retrospective Issue.
124+
- [ ] Helm and Ansible Playbook release.
125+
- [ ] Upcoming Release Preparation.
88126

89-
### Post Release
127+
</p>
128+
</details>
129+
<br>
130+
131+
### [Post Release](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#post-release)
90132

91-
- [ ] Create [release tags](https://github.com/opensearch-project/opensearch-build/blob/main/jenkins/release-tag/release-tag.jenkinsfile) for each component (Jenkins job name: release-tag-creation).
92-
- [ ] Replace refs in [manifests/{{ env.VERSION }}](/opensearch-project/opensearch-build/tree/main/manifests/{{ env.VERSION }}) with tags and remove checks.
93-
- [ ] If this is a major or minor version release, stop building previous patch version.
94-
- [ ] Generate distribution release notes reviewed by PM team for opensearch-build repository.
95-
- [ ] Increment version for Helm Charts [(sample PR)](https://github.com/opensearch-project/helm-charts/pull/246) for the `{{ env.VERSION }}` release.
96-
- [ ] Increment version for Ansible Charts [(sample PR)](https://github.com/opensearch-project/ansible-playbook/pull/50) for the `{{ env.VERSION }}` release.
97-
- [ ] Prepare [for next patch release](https://github.com/opensearch-project/opensearch-plugins/blob/main/META.md#increment-a-version-in-every-plugin) by incrementing patch versions for each component.
98-
- [ ] Update [this template](https://github.com/opensearch-project/opensearch-build/blob/main/.github/ISSUE_TEMPLATE/release_template.md) with any new or missed steps.
99-
- [ ] Create an issue for a retrospective, solicit feedback, and publish a summary.
133+
- [ ] [Release Tags](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#release-tags).
134+
- [ ] [Input Manifest Update](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#input-manifest-update).
135+
- [ ] [OpenSearch Build Release notes](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#opensearch-build-release-notes).
136+
- [ ] [Decrease the Build Frequency](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#decrease-the-build-frequency).
137+
- [ ] [Retrospective Issue](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#retrospective-issue).
138+
- [ ] [Helm and Ansible Playbook release](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#helm-and-ansible-playbook-release).
139+
- [ ] [Upcoming Release Preparation](https://github.com/opensearch-project/opensearch-build/blob/public/RELEASE_PROCESS_OPENSEARCH.md#upcoming-release-preparation).
100140

101141
### Components
102142

@@ -116,4 +156,4 @@ __Replace with links to all component tracking issues.__
116156
| :red_circle: | Missed multiple milestones |
117157

118158
</p>
119-
</details>
159+
</details>

0 commit comments

Comments
 (0)