From 81989f84a76abe11466cf4bcf1e7957bb7e54939 Mon Sep 17 00:00:00 2001 From: Himani1519 Date: Tue, 22 Aug 2023 23:07:46 +0530 Subject: [PATCH 1/9] Automate changelog note Signed-off-by: Himani1519 --- .github/workflows/build_test.yml | 111 ++++++++++++++++++++++--------- 1 file changed, 79 insertions(+), 32 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index c23fdf34..8b815d1b 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -33,49 +33,96 @@ jobs: github-repo: ${{ github.repository }} github-token: ${{ secrets.GITHUB_TOKEN }} - check_changelog: + update-changelog: runs-on: ubuntu-latest + outputs: + was_updated: ${{ steps.check-change.outputs.change_detected }} + check_commit: ${{ steps.check-changelog.outputs.check_commit }} steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v2 with: - path: copy-repo - fetch-depth: ${{ github.event_name == 'pull_request' && 2 || 0 }} + ref: ${{ github.head_ref }} + fetch-depth: 0 - - name: Get changed files - id: changed-files + - name: Check for updated CHANGELOG.md using git + id: check-changelog + run: | + if git diff --name-only origin/${{ github.base_ref }} | grep -q "^CHANGELOG.md$"; then + echo "CHANGELOG.md has been updated." + echo "::set-output name=check_commit::true" + else + echo "ERROR: CHANGELOG.md has not been updated." + echo "::set-output name=check_commit::false" + fi + - name: Extract changelog info + if: steps.check-changelog.outputs.check_commit == 'false' + id: extract-changelog run: | - cd copy-repo - if ${{ github.event_name == 'pull_request' }}; then - echo "changed_files=$(git diff --name-only -r HEAD^1 HEAD | xargs)" >> $GITHUB_OUTPUT + PR_DESCRIPTION="${{ github.event.pull_request.body }}" + # Check if "changelog:" exists in PR description + if echo "$PR_DESCRIPTION" | grep -q "VERSION:" && echo "$PR_DESCRIPTION" | grep -q "CHANGELOG:"; then + # Extract text after "changelog:" + CHANGELOG_TEXT=$(echo $PR_DESCRIPTION | sed -n 's/.*CHANGELOG: \(.*\)/\1/p') + # Extract VERSION: from PR description + VERSION=$(echo "$PR_DESCRIPTION" | grep -oP 'VERSION:\s*\K\d+\.\d+\.\d+') + echo "Extracted changelog: $CHANGELOG_TEXT" + echo "::set-output name=changelog::$CHANGELOG_TEXT" + echo "::set-output name=version::$VERSION" + else + echo -e "No changelog and version information found in PR description please add them.\n Expected Format:\n VERSION:vX.XX.X\n CHANGELOG:This is changelog note.\n + To re-run the action, just make a push or commit after updating the PR description or updating the changelog via a manual file changing commit." + exit 1 + fi + - name: Check PR body against changelog + if: steps.check-changelog.outputs.check_commit == 'false' + run: | + ESCAPED_CHANGELOG="${{ steps.extract-changelog.outputs.changelog }}" + ESCAPED_CHANGELOG=$(echo "$ESCAPED_CHANGELOG" | sed "s/'/\\\\'/g") + VERSION="${{ steps.extract-changelog.outputs.version }}" + + if ! grep -Fq "$ESCAPED_CHANGELOG" CHANGELOG.md; then + # Check if version exists in CHANGELOG.md + if grep -q "^## \`$VERSION\`" CHANGELOG.md; then + # Append PR description to existing version + sed -i "/^## \`$VERSION\`/a - $ESCAPED_CHANGELOG (#${{ github.event.pull_request.number }})" CHANGELOG.md else - echo "changed_files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT + # Append new version and PR description + ANCHOR_LINE=$(awk '/# Zlux Editor Changelog/ {print NR}' CHANGELOG.md) + sed -i "$ANCHOR_LINE a\\ + \n## \`$VERSION\`\n- $ESCAPED_CHANGELOG (#${{ github.event.pull_request.number }})\n" CHANGELOG.md fi - - - name: List changed files - id: set-flag + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add CHANGELOG.md + git commit -m "Update changelog with PR #${{ github.event.pull_request.number }} description" + git push + fi + - name: check for changes + id: check-change run: | - cd copy-repo - for file in ${{ steps.changed-files.outputs.changed_files }}; do - echo "$file was changed" - if [[ $file == "CHANGELOG.md" ]] - then - echo "file-flag=true" >> $GITHUB_OUTPUT - break; - else - echo "file-flag=false" >> $GITHUB_OUTPUT - fi - done + if git diff --name-only HEAD^ HEAD | grep 'changelog.md'; then + echo "No Changes detected, setting flag to false" + echo "::set-output name=change_detected::false" + else + echo "::set-output name=change_detected::true" + fi - - name: Check if CHANGELOG is Updated and Abort if not updated - if: steps.set-flag.outputs.file-flag != 'true' - run: | - echo "CHANGELOG.md not updated, please update CHANGELOG.md with the changes made in the pull request" - exit 1 + check_changelog: + needs: update-changelog + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 - - name: Remove copy-repo - if: always() - run: rm -r copy-repo + - name: Verify Changelog update + run: | + if [ "${{ needs.update-changelog.outputs.was_updated }}" != "true" ]; then + echo "CHANGELOG.md not updated, please update CHANGELOG.md with the changes made in the pull request" + exit 1 + else + echo "changelog was updated successfully." + fi build: runs-on: ubuntu-latest From e0e2c7dc23e7f7928d6a49363aab899a0d8dc7e7 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Tue, 22 Aug 2023 17:39:04 +0000 Subject: [PATCH 2/9] Update changelog with PR #338 description Signed-off-by: Himani1519 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5dfb4d4e..0f1e699d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Zlux Editor Changelog ## `3.0.1` +- This action making a CHANGELOG note via special syntax from the GitHub PR commit message, like it could automatically update CHANGELOG.md with the message. First job checks if PR body has changelog note or not if it's not there then it asked them to add it and second job is to check if changelog note has been added in changelog.md file or not. (#338) - Bugfix: Added a few rules for JCL syntax highlighter - Bugfix: Set USS path to correct directory, when opening the directory or file in new browser tab respectively - Added the feature to copy the line content and copy URL link to open a file at a specific line From 4bdbeccf3825b883cdf8a041cd33b645c21e5d96 Mon Sep 17 00:00:00 2001 From: Himani1519 Date: Wed, 23 Aug 2023 19:53:13 +0530 Subject: [PATCH 3/9] Fix version format Signed-off-by: Himani1519 --- .github/workflows/build_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 8b815d1b..5589e83f 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -70,7 +70,7 @@ jobs: echo "::set-output name=changelog::$CHANGELOG_TEXT" echo "::set-output name=version::$VERSION" else - echo -e "No changelog and version information found in PR description please add them.\n Expected Format:\n VERSION:vX.XX.X\n CHANGELOG:This is changelog note.\n + echo -e "No changelog and version information found in PR description please add them.\n Expected Format:\n VERSION:X.XX.X\n CHANGELOG:This is changelog note.\n To re-run the action, just make a push or commit after updating the PR description or updating the changelog via a manual file changing commit." exit 1 fi From 27ed2f35413de9b29aab46cb8e1196317c04b012 Mon Sep 17 00:00:00 2001 From: Himani1519 Date: Tue, 29 Aug 2023 20:10:01 +0530 Subject: [PATCH 4/9] minor change Signed-off-by: Himani1519 --- .github/workflows/build_test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 5589e83f..f657753d 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -92,10 +92,10 @@ jobs: sed -i "$ANCHOR_LINE a\\ \n## \`$VERSION\`\n- $ESCAPED_CHANGELOG (#${{ github.event.pull_request.number }})\n" CHANGELOG.md fi - git config --local user.email "action@github.com" - git config --local user.name "GitHub Action" + git config --global user.email "zowe-robot@users.noreply.github.com" + git config --global user.name "Zowe Robot" git add CHANGELOG.md - git commit -m "Update changelog with PR #${{ github.event.pull_request.number }} description" + git commit -s -m "Update changelog with PR #${{ github.event.pull_request.number }} description" git push fi - name: check for changes From 5e719254dedde40e4ec5c2b048ec2117125c17de Mon Sep 17 00:00:00 2001 From: Himani1519 Date: Tue, 5 Sep 2023 20:44:56 +0530 Subject: [PATCH 5/9] update changelog.md Signed-off-by: Himani1519 --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f1e699d..5dfb4d4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,6 @@ # Zlux Editor Changelog ## `3.0.1` -- This action making a CHANGELOG note via special syntax from the GitHub PR commit message, like it could automatically update CHANGELOG.md with the message. First job checks if PR body has changelog note or not if it's not there then it asked them to add it and second job is to check if changelog note has been added in changelog.md file or not. (#338) - Bugfix: Added a few rules for JCL syntax highlighter - Bugfix: Set USS path to correct directory, when opening the directory or file in new browser tab respectively - Added the feature to copy the line content and copy URL link to open a file at a specific line From b8656c129a7d4e828d6c4230c079f8eaeeba0479 Mon Sep 17 00:00:00 2001 From: Zowe Robot Date: Tue, 5 Sep 2023 15:15:46 +0000 Subject: [PATCH 6/9] Update changelog with PR #338 description Signed-off-by: Zowe Robot --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5dfb4d4e..0f1e699d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Zlux Editor Changelog ## `3.0.1` +- This action making a CHANGELOG note via special syntax from the GitHub PR commit message, like it could automatically update CHANGELOG.md with the message. First job checks if PR body has changelog note or not if it's not there then it asked them to add it and second job is to check if changelog note has been added in changelog.md file or not. (#338) - Bugfix: Added a few rules for JCL syntax highlighter - Bugfix: Set USS path to correct directory, when opening the directory or file in new browser tab respectively - Added the feature to copy the line content and copy URL link to open a file at a specific line From be28a69662f252f91186eb977fe31a53987382a7 Mon Sep 17 00:00:00 2001 From: 1000TurquoisePogs Date: Tue, 5 Sep 2023 14:14:31 -0400 Subject: [PATCH 7/9] Update CHANGELOG.md Signed-off-by: 1000TurquoisePogs --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f1e699d..f706c385 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Zlux Editor Changelog ## `3.0.1` -- This action making a CHANGELOG note via special syntax from the GitHub PR commit message, like it could automatically update CHANGELOG.md with the message. First job checks if PR body has changelog note or not if it's not there then it asked them to add it and second job is to check if changelog note has been added in changelog.md file or not. (#338) + - Bugfix: Added a few rules for JCL syntax highlighter - Bugfix: Set USS path to correct directory, when opening the directory or file in new browser tab respectively - Added the feature to copy the line content and copy URL link to open a file at a specific line From 60332913bc34747c9936a143a0357af5fd24cffa Mon Sep 17 00:00:00 2001 From: Himani1519 Date: Fri, 8 Sep 2023 12:16:08 +0530 Subject: [PATCH 8/9] update changelog when its PR Signed-off-by: Himani1519 --- .github/workflows/build_test.yml | 2 ++ CHANGELOG.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index f657753d..aea07cc3 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -34,6 +34,7 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} update-changelog: + if: github.event_name == 'pull_request' runs-on: ubuntu-latest outputs: was_updated: ${{ steps.check-change.outputs.change_detected }} @@ -109,6 +110,7 @@ jobs: fi check_changelog: + if: github.event_name == 'pull_request' needs: update-changelog runs-on: ubuntu-latest steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index f706c385..1ce3dba0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ - BugFix: Editor keeps the content of the file, after an opened file is closed. ## `2.9.0` + - Added the feature to update the dataset in the editor - Added the check for e-tag while updating the dataset - Added feature to open a file in new broswer tab @@ -26,6 +27,7 @@ - Added the feature to prompt the user to save the unsaved files before closing ## `2.8.0` + - Bugfix: Fixed error message & phantom tab when opening undefined length dataset - Bugfix: Unable to recalculate the size of monaco-code-container when switching from diff-viewer to code-editor. - Added previously selected content comparison (Diff viewer) From 985b3b1409eeb29350f99a15ec0996312b339fd0 Mon Sep 17 00:00:00 2001 From: zowe-robot Date: Wed, 20 Sep 2023 18:48:52 +0000 Subject: [PATCH 9/9] v2.12.0 Signed-off-by: zowe-robot --- manifest.yaml | 2 +- pluginDefinition.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.yaml b/manifest.yaml index 67b315cd..47f7ea00 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -2,7 +2,7 @@ name: editor id: org.zowe.editor # Without the v -version: 2.11.0 +version: 2.12.0 # Human readable component name title: Editor # Human readable component description diff --git a/pluginDefinition.json b/pluginDefinition.json index c49e5c5e..087597f8 100644 --- a/pluginDefinition.json +++ b/pluginDefinition.json @@ -1,7 +1,7 @@ { "identifier": "org.zowe.editor", "apiVersion": "2.0.0", - "pluginVersion": "2.11.0", + "pluginVersion": "2.12.0", "license": "EPL-2.0", "author": "Zowe", "homepage": "https://github.com/zowe/zlux-editor",