Skip to content

Commit 7f314a7

Browse files
docs: add RELEASE process
Signed-off-by: Abhinandan Purkait <purkaitabhinandan@gmail.com>
1 parent 9a7a727 commit 7f314a7

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

RELEASE.md

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# OpenEBS Mayastor Release Process
2+
3+
This document describes the comprehensive steps for releasing a new version of OpenEBS Mayastor. It is intended for contributors and maintainers to ensure consistency, reproducibility, and transparency in the release process.
4+
5+
## Overview
6+
7+
The release process encompasses the following stages for both major, minor or patch releases:
8+
- Pre-release preparations
9+
- Tag creation
10+
- Build and testing
11+
- Release creation and publication
12+
13+
## 1. Pre-Release Preparations
14+
15+
Before beginning the release, ensure the following prerequisites are met:
16+
- **Release Branch:** A dedicated release branch is created from the `develop` or already exists (e.g., `release/2.7`).
17+
- **Regression Testing:** All nightly regression tests and test suites have been executed successfully on the release branch.
18+
19+
## 2. Tag Creation
20+
21+
Creating git tags is the first formal step to marking the code for release.
22+
23+
### Steps:
24+
25+
- **Tag Relevant Repositories:**
26+
- Create git tags on all relevant repositories (e.g., mayastor, control-plane, and mayastor-extensions).
27+
- This action triggers various GitHub Actions (GAs) automatically, such as generating release artifacts on the mayastor-extensions repository.
28+
29+
## 3. Build and Testing
30+
31+
After tagging, the next step is to build the release artifacts and validate the new release through testing.
32+
33+
### Build Process:
34+
1. **Trigger Build Jobs:**
35+
- Execute the build jobs for the mayastor, control-plane, and mayastor-extensions repositories.
36+
37+
2. **Artifact Generation:**
38+
- Verify that container images and other artifacts are correctly generated by the build pipelines.
39+
40+
### Testing:
41+
1. **Basic Installation:**
42+
- Perform a basic installation using the newly built images to confirm they are functional.
43+
44+
2. **Upgrade Testing:**
45+
- Validate the upgrade process from the previous release version to ensure backward compatibility.
46+
47+
3. **Smoke Tests:**
48+
- Run smoke tests to verify that core functionalities operate as expected.
49+
50+
4. **Regression:**
51+
- Comprehensive testing is done on the tag, if issues or bugs are identified, they are fixed by further releases, ex. patch.
52+
53+
## 4. Release Creation and Publication
54+
55+
Once the builds and tests have passed, create the final release.
56+
57+
### Steps:
58+
1. **Create Release from Tag:**
59+
- Use the generated git tags to create a new release entry for each repository (mayastor, control-plane, and mayastor-extensions).
60+
61+
2. **Update Release Notes:**
62+
- Prepare comprehensive release notes that detail new features, bug fixes, and any known issues.
63+
- Ensure that documentation references are current and accurate.
64+
65+
3. **Attach Artifacts:**
66+
- Confirm that the mayastor kubectl binaries (generated via GitHub Actions on the mayastor-extensions repository) are automatically attached to the release.
67+
- Verify that all other release artifacts are present.
68+
69+
4. **Final Review:**
70+
- Double-check all links, documentation, and artifact references.
71+
- Validate that the release notes complete and accurate.
72+
73+
5. **Publish the Release:**
74+
- Once all verifications are complete, publish the release.

0 commit comments

Comments
 (0)