Skip to content

Latest commit

 

History

History
74 lines (50 loc) · 3.05 KB

RELEASE.md

File metadata and controls

74 lines (50 loc) · 3.05 KB

OpenEBS Mayastor Release Process

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.

Overview

The release process encompasses the following stages for both major, minor or patch releases:

  • Pre-release preparations
  • Tag creation
  • Build and testing
  • Release creation and publication

1. Pre-Release Preparations

Before beginning the release, ensure the following prerequisites are met:

  • Release Branch: A dedicated release branch is created from the develop or already exists (e.g., release/2.7).
  • Regression Testing: All nightly regression tests and test suites have been executed successfully on the release branch.

2. Tag Creation

Creating git tags is the first formal step to marking the code for release.

Steps:

  • Tag Relevant Repositories:
    • Create git tags on all relevant repositories (e.g., mayastor, control-plane, and mayastor-extensions).
    • This action triggers various GitHub Actions (GAs) automatically, such as generating release artifacts on the mayastor-extensions repository.

3. Build and Testing

After tagging, the next step is to build the release artifacts and validate the new release through testing.

Build Process:

  1. Trigger Build Jobs:

    • Execute the build jobs for the mayastor, control-plane, and mayastor-extensions repositories.
  2. Artifact Generation:

    • Verify that container images and other artifacts are correctly generated by the build pipelines.

Testing:

  1. Basic Installation:

    • Perform a basic installation using the newly built images to confirm they are functional.
  2. Upgrade Testing:

    • Validate the upgrade process from the previous release version to ensure backward compatibility.
  3. Smoke Tests:

    • Run smoke tests to verify that core functionalities operate as expected.
  4. Regression:

    • Comprehensive testing is done on the tag, if issues or bugs are identified, they are fixed by further releases, ex. patch.

4. Release Creation and Publication

Once the builds and tests have passed, create the final release.

Steps:

  1. Create Release from Tag:

    • Use the generated git tags to create a new release entry for each repository (mayastor, control-plane, and mayastor-extensions).
  2. Update Release Notes:

    • Prepare comprehensive release notes that detail new features, bug fixes, and any known issues.
    • Ensure that documentation references are current and accurate.
  3. Attach Artifacts:

    • Confirm that the mayastor kubectl binaries (generated via GitHub Actions on the mayastor-extensions repository) are automatically attached to the release.
    • Verify that all other release artifacts are present.
  4. Final Review:

    • Double-check all links, documentation, and artifact references.
    • Validate that the release notes complete and accurate.
  5. Publish the Release:

    • Once all verifications are complete, publish the release.