From 1eec63f169a2cba3d32a5cab2cd5349c49a570c6 Mon Sep 17 00:00:00 2001 From: David Venable Date: Fri, 25 Aug 2023 14:04:43 -0700 Subject: [PATCH] Adds a RELEASING.md file to the root of the project (#3251) Adds a RELEASING.md file to the root of the project. This has updated instructions for the new release workflow. Resolves #3108. Signed-off-by: David Venable --- RELEASING.md | 71 +++++++++++++++++++++++++++++++++++++++++++++++ release/README.md | 33 +--------------------- 2 files changed, 72 insertions(+), 32 deletions(-) create mode 100644 RELEASING.md diff --git a/RELEASING.md b/RELEASING.md new file mode 100644 index 0000000000..c8da921782 --- /dev/null +++ b/RELEASING.md @@ -0,0 +1,71 @@ +# Releasing + +This document outlines the process for releasing Data Prepper. + +## Release prerequisites + +Be sure you have: + +* Created a release branch. +* Updated the version in the release branch. +* Updated the THIRD-PARTY file. +* Created the release notes file +* Created the changelog file + +## Performing a release + +This section outlines how to perform a Data Prepper release using GitHub Actions and the OpenSearch build infrastructure. +The audience for this section are Data Prepper maintainers. + +### Start the release Data Prepper action + +To run the release, go to the [Release Artifacts](https://github.com/opensearch-project/data-prepper/actions/workflows/release.yml) +GitHub Action. + +Select the "Run workflow" option from the GitHub Actions UI. GitHub will prompt you with some options. + +#### Use workflow for + +Select the release branch which you are releasing for. +Typically, this will be a branch such as `2.4`. +However, you may select `main` for testing. + +#### Whether to create major tag of docker image or not. + +This will create a tag such as `2` which points to this version + +All releases have a full version tag. For example, `2.4.0`. +The latest release on a major series can also have a tag applied such as `2`. +Check this option if you are releasing the latest version withing that series of major versions. +This value can be true for old major series as well such as the 1.x series. + +#### Whether to create latest tag of docker image or not. + +This will update the `latest` tag to point to this version. +You should set this when releasing the latest version, but not patches to old versions. + +#### Run + +Press the "Run workflow" button. + +GitHub Actions will perform the release process. +This includes building the artifacts, testing, drafting a GitHub release, and promoting to production + +### Approve issue + +The release build will create a new GitHub issue requesting to release the project. +This needs two maintainers to approve. +To approve, load [Data Prepper issues](https://github.com/opensearch-project/data-prepper/issues). +Look for and open a new issue starting with _Manual approval required for workflow_. +Verify that the metadata looks correct and that we want to release. +Add a new comment on the issue with the word _approve_ or _approved_ in it. +(See the issue for all allowed words) +Once approved by two maintainers, the release build will be promoted to production. + +You can also deny a release by using _deny_ or _denied_ in the comment. + +**NOTE** The smoke tests currently report a build failure, even when they succeed. Thus, you need to manually verify the output. + +### Further details + +For more details on the release build, or to setup your own GitHub repository, see [release/README.md](release/README.md). diff --git a/release/README.md b/release/README.md index 515ee0755a..34bc5b6df6 100644 --- a/release/README.md +++ b/release/README.md @@ -8,36 +8,5 @@ It is not a project and instead holds release notes and change logs for Data Pre ## Performing a Release -This section outlines how to perform a Data Prepper release using GitHub Actions and the OpenSearch build infrastructure. -The audience for this section are Data Prepper maintainers. +See [RELEASING.md](../RELEASING.md) for instructions to follow for any release. -### Prerequisites - -You should have created a RELEASE Issue in the [opensearch-build](https://github.com/opensearch-project/opensearch-build) project. - -### Building the Data Prepper Artifacts - -To run the release, go to the [Release Artifacts](https://github.com/opensearch-project/data-prepper/actions/workflows/release.yml) -GitHub Action. - -Select the "Run workflow" option from the GitHub Actions UI. GitHub will prompt you to select a branch with the "Use workflow from" option. Select -the release branch which you are releasing for. You may select `main` for testing. - -Press the "Run workflow" button. - -GitHub Actions will perform the release process. Please take note of the workflow run number. You will find this in the text "Release Artifacts #" -and use it when promoting to production. - -Wait for the job to complete successfully. Once the job completes successfully, you -have released the artifacts to the Data Prepper staging repository. - -### Promotion to Production - -The Data Prepper staging repository organizes artifacts by build number. Thus to promote any given build, the opensearch-build maintainers need to know the build number to promote. -When you are ready to promote any given build to production, update the RELEASE Issue you created in the opensearch-build project. The opensearch-build maintainers will -then run the promotion job for the artifacts you specified. - -Provide the following information as a comment in the RELEASE Issue: - -* `VERSION` - The version you are releasing (e.g. `1.3.0`) -* `DATA_PREPPER_BUILD_NUMBER` - The workflow run number from the GitHub Action which build the artifacts. Do not include the `#`. e.g. `3`