From 1b2a75e2d2e68d037c5b41995a55dc0182ad37fe Mon Sep 17 00:00:00 2001 From: coleramos425 Date: Fri, 9 Aug 2024 17:26:10 +0000 Subject: [PATCH 01/10] Package release tarball on rocm tags and add a MAINTAINERS guide to outline release procedure Signed-off-by: coleramos425 --- .github/workflows/packaging.yml | 1 + MAINTAINERS.md | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 MAINTAINERS.md diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml index f1244bcd..3ab52e46 100644 --- a/.github/workflows/packaging.yml +++ b/.github/workflows/packaging.yml @@ -4,6 +4,7 @@ on: push: tags: - "v[1-9].[0-9]+.[0-9]+*" + - "rocm-[0-9]+.[0-9]+.[0-9]+*" concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/MAINTAINERS.md b/MAINTAINERS.md new file mode 100644 index 00000000..8993a17a --- /dev/null +++ b/MAINTAINERS.md @@ -0,0 +1,20 @@ +## Maintainers Guide to Omniperf + +### Publishing a release +Before publishing a new Omniperf release, please review this checklist to ensure all required prerequisits are met: + +1) **Ensure [VERSION](VERSION) file is updated** to reflect your desired release version. +2) **Sync `amd-mainline` with `amd-staging`**. A rebase may be required to pull all of the desired patches from the development branch to our stable mainline. Click [here]() to begin that process. +3) **Update [CHANGES](CHANGES)** to reflect all major modifications to the codebase since the last release. When modifying [CHANGES](CHANGES) please reference formatting from previous releases to ensure consistency. +4) **Confirm all CI tests are passing**. You can easily confirm this by peeking the passing status of all GitHub continuous integration tests. +5) **Create a tag from `amd-mainline`**. More information on tagging can be found at [Git Docs - Tagging](https://git-scm.com/book/en/v2/Git-Basics-Tagging). + +> [!NOTE] +Note: A successful tag should trigger the [packaging action](https://github.com/ROCm/omniperf/actions/workflows/packaging.yml) which will produce a tarball artifact. **This artifact needs to be included as an asset in your release**. + +Once you've completed the above checklist, you are ready to publish your release. Please ensure you follow formatting from [past Omniperf releases](https://github.com/ROCm/omniperf/releases) for consistency. Some important aspects of our release formatting include: + +- Date of release is included in "Release Title". +- Updates are called out in "Release Description". Updates should mirror those listed in [CHANGES](CHANGES). +- Links to documentation and associated release tarball are called out in "Release Description". +- The tarball artifact from the corresponding tag is added to "Release Assets". \ No newline at end of file From 94e95aff58826d7aa7acbe2ce9df2f503c13afad Mon Sep 17 00:00:00 2001 From: coleramos425 Date: Fri, 9 Aug 2024 20:14:31 +0000 Subject: [PATCH 02/10] Apply linting feedback Signed-off-by: coleramos425 --- MAINTAINERS.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 8993a17a..de95c47f 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -1,7 +1,8 @@ -## Maintainers Guide to Omniperf +# Maintainers Guide to Omniperf -### Publishing a release -Before publishing a new Omniperf release, please review this checklist to ensure all required prerequisits are met: +## Publishing a release + +Before publishing a new Omniperf release, please review this checklist to ensure all prerequisites are met: 1) **Ensure [VERSION](VERSION) file is updated** to reflect your desired release version. 2) **Sync `amd-mainline` with `amd-staging`**. A rebase may be required to pull all of the desired patches from the development branch to our stable mainline. Click [here]() to begin that process. @@ -17,4 +18,4 @@ Once you've completed the above checklist, you are ready to publish your release - Date of release is included in "Release Title". - Updates are called out in "Release Description". Updates should mirror those listed in [CHANGES](CHANGES). - Links to documentation and associated release tarball are called out in "Release Description". -- The tarball artifact from the corresponding tag is added to "Release Assets". \ No newline at end of file +- The tarball artifact from the corresponding tag is added to "Release Assets". From 849a0fde1c179f60fad25f003bce45c0e466a462 Mon Sep 17 00:00:00 2001 From: coleramos425 Date: Fri, 9 Aug 2024 20:19:55 +0000 Subject: [PATCH 03/10] Update links in MAINTAINERS for new branches Signed-off-by: coleramos425 --- MAINTAINERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS.md b/MAINTAINERS.md index de95c47f..93cd126b 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -5,7 +5,7 @@ Before publishing a new Omniperf release, please review this checklist to ensure all prerequisites are met: 1) **Ensure [VERSION](VERSION) file is updated** to reflect your desired release version. -2) **Sync `amd-mainline` with `amd-staging`**. A rebase may be required to pull all of the desired patches from the development branch to our stable mainline. Click [here]() to begin that process. +2) **Sync `amd-mainline` with `amd-staging`**. A rebase may be required to pull all of the desired patches from the development branch to our stable mainline. Click [here](https://github.com/ROCm/omniperf/compare/amd-mainline...amd-staging) to begin that process. 3) **Update [CHANGES](CHANGES)** to reflect all major modifications to the codebase since the last release. When modifying [CHANGES](CHANGES) please reference formatting from previous releases to ensure consistency. 4) **Confirm all CI tests are passing**. You can easily confirm this by peeking the passing status of all GitHub continuous integration tests. 5) **Create a tag from `amd-mainline`**. More information on tagging can be found at [Git Docs - Tagging](https://git-scm.com/book/en/v2/Git-Basics-Tagging). From d43d9d0e7dc6ce309863139c5560b4cfdffcd0e5 Mon Sep 17 00:00:00 2001 From: coleramos425 Date: Fri, 16 Aug 2024 21:02:25 +0000 Subject: [PATCH 04/10] Update MAINTAINERS.md for changelog formatting Signed-off-by: coleramos425 --- MAINTAINERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 93cd126b..0a886ce2 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -6,7 +6,7 @@ Before publishing a new Omniperf release, please review this checklist to ensure 1) **Ensure [VERSION](VERSION) file is updated** to reflect your desired release version. 2) **Sync `amd-mainline` with `amd-staging`**. A rebase may be required to pull all of the desired patches from the development branch to our stable mainline. Click [here](https://github.com/ROCm/omniperf/compare/amd-mainline...amd-staging) to begin that process. -3) **Update [CHANGES](CHANGES)** to reflect all major modifications to the codebase since the last release. When modifying [CHANGES](CHANGES) please reference formatting from previous releases to ensure consistency. +3) **Update [CHANGES](CHANGES)** to reflect all major modifications to the codebase since the last release. When modifying [CHANGES](CHANGES) please ensure formatting is consistent with the rest of the ROCm software stack. See [this template](https://github.com/ROCm/hipTensor/blob/develop/CHANGELOG.md) for reference. 4) **Confirm all CI tests are passing**. You can easily confirm this by peeking the passing status of all GitHub continuous integration tests. 5) **Create a tag from `amd-mainline`**. More information on tagging can be found at [Git Docs - Tagging](https://git-scm.com/book/en/v2/Git-Basics-Tagging). From 8395f67b495c7cb7b7c4d2c6dc0992eeb2fda69a Mon Sep 17 00:00:00 2001 From: coleramos425 Date: Fri, 16 Aug 2024 21:03:40 +0000 Subject: [PATCH 05/10] Update Omniperf ver checker to allow tags with rocm- prefix Signed-off-by: coleramos425 --- utils/ver_check.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/utils/ver_check.py b/utils/ver_check.py index 13bf9dba..c50fcdf2 100755 --- a/utils/ver_check.py +++ b/utils/ver_check.py @@ -28,6 +28,9 @@ elif tag.startswith(repoCheck + "-"): print("OK: allowed match with extra delimiter") exit(0) +elif tag.startswith("rocm-"): + print("OK: allowed match with 'rocm-' prefix") + exit(0) else: print("FAIL: no match - double check top-level VERSION file") exit(1) From ed3e3b85b23657be01012f32f6c2b4dae0e27047 Mon Sep 17 00:00:00 2001 From: coleramos425 Date: Tue, 20 Aug 2024 18:43:02 +0000 Subject: [PATCH 06/10] Add step to packaging workflow to upload release tarball to release Signed-off-by: coleramos425 --- .github/workflows/packaging.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml index 3ab52e46..2106f737 100644 --- a/.github/workflows/packaging.yml +++ b/.github/workflows/packaging.yml @@ -43,3 +43,21 @@ jobs: with: name: omniperf-${{github.ref_name}}.tar.gz path: build/omniperf-${{github.ref_name}}.tar.gz + - name: Set version + run: echo "VERSION=$(cat VERSION)" >> $GITHUB_ENV + - name: Determine release name + run: | + if [[ ${{github.ref_name}} == rocm-* ]]; then + echo "RELEASE_NAME=Omniperf ${{ env.VERSION }} for ROCm ${{github.ref_name}}" + else + echo "RELEASE_NAME=Omniperf ${{ env.VERSION }}" + fi >> $GITHUB_ENV + - name: Upload tarball Release Asset + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') && github.repository == 'ROCm/omniperf' + with: + fail_on_unmatched: True + draft: True + name: ${{ env.RELEASE_NAME }} + files: | + omniperf-*.tar.gz From 7441f040e0e1ad611033022f00876403123d58b4 Mon Sep 17 00:00:00 2001 From: coleramos425 Date: Tue, 20 Aug 2024 19:05:00 +0000 Subject: [PATCH 07/10] Synax change for release name in packaging action Signed-off-by: coleramos425 --- .github/workflows/packaging.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml index 2106f737..1d417d7e 100644 --- a/.github/workflows/packaging.yml +++ b/.github/workflows/packaging.yml @@ -48,7 +48,7 @@ jobs: - name: Determine release name run: | if [[ ${{github.ref_name}} == rocm-* ]]; then - echo "RELEASE_NAME=Omniperf ${{ env.VERSION }} for ROCm ${{github.ref_name}}" + echo "RELEASE_NAME=Omniperf ${{ env.VERSION }} for ${{github.ref_name}}" else echo "RELEASE_NAME=Omniperf ${{ env.VERSION }}" fi >> $GITHUB_ENV @@ -60,4 +60,4 @@ jobs: draft: True name: ${{ env.RELEASE_NAME }} files: | - omniperf-*.tar.gz + build/omniperf-${{github.ref_name}}.tar.gz From d1abb8b74fc95322864e896e1c38c249a09b2f96 Mon Sep 17 00:00:00 2001 From: coleramos425 Date: Thu, 22 Aug 2024 16:39:37 +0000 Subject: [PATCH 08/10] Update MAINTAINERS for instuctions on ROCm releases Signed-off-by: coleramos425 --- MAINTAINERS.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 0a886ce2..0ee7f23d 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -5,13 +5,13 @@ Before publishing a new Omniperf release, please review this checklist to ensure all prerequisites are met: 1) **Ensure [VERSION](VERSION) file is updated** to reflect your desired release version. -2) **Sync `amd-mainline` with `amd-staging`**. A rebase may be required to pull all of the desired patches from the development branch to our stable mainline. Click [here](https://github.com/ROCm/omniperf/compare/amd-mainline...amd-staging) to begin that process. +2) **Sync `amd-mainline` with `amd-staging`**. A rebase may be required to pull all the desired patches from the development branch to our stable mainline. Click [here](https://github.com/ROCm/omniperf/compare/amd-mainline...amd-staging) to begin that process. 3) **Update [CHANGES](CHANGES)** to reflect all major modifications to the codebase since the last release. When modifying [CHANGES](CHANGES) please ensure formatting is consistent with the rest of the ROCm software stack. See [this template](https://github.com/ROCm/hipTensor/blob/develop/CHANGELOG.md) for reference. 4) **Confirm all CI tests are passing**. You can easily confirm this by peeking the passing status of all GitHub continuous integration tests. 5) **Create a tag from `amd-mainline`**. More information on tagging can be found at [Git Docs - Tagging](https://git-scm.com/book/en/v2/Git-Basics-Tagging). > [!NOTE] -Note: A successful tag should trigger the [packaging action](https://github.com/ROCm/omniperf/actions/workflows/packaging.yml) which will produce a tarball artifact. **This artifact needs to be included as an asset in your release**. +Note: A successful tag should trigger the [packaging action](.github/workflows/packaging.yml) which will produce a tarball artifact. **This artifact needs to be included as an asset in your release**. Please find that the [packaging action](.github/workflows/packaging.yml) will automatically create a draft release with your tarball attached. Once you've completed the above checklist, you are ready to publish your release. Please ensure you follow formatting from [past Omniperf releases](https://github.com/ROCm/omniperf/releases) for consistency. Some important aspects of our release formatting include: @@ -19,3 +19,11 @@ Once you've completed the above checklist, you are ready to publish your release - Updates are called out in "Release Description". Updates should mirror those listed in [CHANGES](CHANGES). - Links to documentation and associated release tarball are called out in "Release Description". - The tarball artifact from the corresponding tag is added to "Release Assets". + +### Publishing a release for ROCm + +If you are preparing for a new ROCm release, note that the [rocm-ci](https://github.com/rocm-ci) bot managed by DevOps will be triggering a tag automatically. This tag will follow the format `rocm-X.X.X`. + +Traditionally, we will bump the Omniperf [VERSION](VERSION) with a new ROCm release. When we bump the version and reach the prerequisite step (5) above, try tagging with `vX.X.X` to validate the release tarball generated by the [packaging action](.github/workflows/packaging.yml). + +In addition to the prerequisites mentioned above, please make sure that all changes have been merged from `amd-staging` -> `release/rocm-rel-X.X.X` to ensure that the "rocm-ci" bot will capture all your changes. It is easiest to file a single pull request ahead of the ROCm release. From e8862b9d1093c3825492a6c21ab146ab0627a057 Mon Sep 17 00:00:00 2001 From: coleramos425 Date: Tue, 24 Sep 2024 15:28:28 -0500 Subject: [PATCH 09/10] Update softprops pluvin to v2 and remove release name Removing the release name enables us to modify an existing release with the matching tag Signed-off-by: coleramos425 --- .github/workflows/packaging.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml index 1d417d7e..0a7858c5 100644 --- a/.github/workflows/packaging.yml +++ b/.github/workflows/packaging.yml @@ -53,11 +53,10 @@ jobs: echo "RELEASE_NAME=Omniperf ${{ env.VERSION }}" fi >> $GITHUB_ENV - name: Upload tarball Release Asset - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 if: startsWith(github.ref, 'refs/tags/') && github.repository == 'ROCm/omniperf' with: fail_on_unmatched: True draft: True - name: ${{ env.RELEASE_NAME }} files: | build/omniperf-${{github.ref_name}}.tar.gz From ccc9fdfb8a6d5d70214ea084b13bd5de35343acd Mon Sep 17 00:00:00 2001 From: coleramos425 Date: Tue, 24 Sep 2024 15:50:29 -0500 Subject: [PATCH 10/10] Remove draft option on softprops plugin Signed-off-by: coleramos425 --- .github/workflows/packaging.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml index 0a7858c5..2b64bbd5 100644 --- a/.github/workflows/packaging.yml +++ b/.github/workflows/packaging.yml @@ -57,6 +57,5 @@ jobs: if: startsWith(github.ref, 'refs/tags/') && github.repository == 'ROCm/omniperf' with: fail_on_unmatched: True - draft: True files: | build/omniperf-${{github.ref_name}}.tar.gz