From 5faeb8297a72f0d8efb105faf5bbd3a913c73708 Mon Sep 17 00:00:00 2001 From: "harshitha.d" Date: Thu, 12 Mar 2026 10:21:27 +0530 Subject: [PATCH 1/3] update workflow --- .github/workflows/check-version-bump.yml | 37 +++++++++++++++++++++--- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/.github/workflows/check-version-bump.yml b/.github/workflows/check-version-bump.yml index acce65c3..a5448616 100644 --- a/.github/workflows/check-version-bump.yml +++ b/.github/workflows/check-version-bump.yml @@ -1,11 +1,9 @@ -# Ensures package.json and CHANGELOG.md are bumped compared to the latest tag when relevant files change. +# Catches when developers forget to add a version bump for their changes. +# Code changes (e.g. lib/) require package.json + CHANGELOG.md; test-only or comment-only in lib/ skip. name: Check Version Bump on: pull_request: - paths: - - 'package.json' - - 'CHANGELOG.md' jobs: version-bump: @@ -17,12 +15,43 @@ jobs: with: fetch-depth: 0 + - name: Detect changed files and version bump + id: detect + run: | + if git rev-parse HEAD^2 >/dev/null 2>&1; then + FILES=$(git diff --name-only HEAD^1 HEAD^2) + else + FILES=$(git diff --name-only HEAD~1 HEAD) + fi + VERSION_FILES_CHANGED=false + echo "$FILES" | grep -qx 'package.json' && VERSION_FILES_CHANGED=true + echo "$FILES" | grep -qx 'CHANGELOG.md' && VERSION_FILES_CHANGED=true + echo "version_files_changed=$VERSION_FILES_CHANGED" >> $GITHUB_OUTPUT + CODE_CHANGED=false + echo "$FILES" | grep -qE '^lib/|^webpack/|^dist/' && CODE_CHANGED=true + echo "$FILES" | grep -qx 'package.json' && CODE_CHANGED=true + echo "code_changed=$CODE_CHANGED" >> $GITHUB_OUTPUT + + - name: Skip when only test/docs/config changed + if: steps.detect.outputs.code_changed != 'true' + run: | + echo "No release-affecting files changed (e.g. only test/docs). Skipping version-bump check." + exit 0 + + - name: Fail when version bump was missed + if: steps.detect.outputs.code_changed == 'true' && steps.detect.outputs.version_files_changed != 'true' + run: | + echo "::error::This PR has code changes but no version bump. Please bump the version in package.json and add an entry in CHANGELOG.md." + exit 1 + - name: Setup Node + if: steps.detect.outputs.code_changed == 'true' && steps.detect.outputs.version_files_changed == 'true' uses: actions/setup-node@v4 with: node-version: '22.x' - name: Check version bump + if: steps.detect.outputs.code_changed == 'true' && steps.detect.outputs.version_files_changed == 'true' run: | set -e PKG_VERSION=$(node -p "require('./package.json').version.replace(/^v/, '')") From 3548a4f189421c02f9f94976a186dd239d8623f5 Mon Sep 17 00:00:00 2001 From: "harshitha.d" Date: Thu, 12 Mar 2026 10:31:20 +0530 Subject: [PATCH 2/3] refine version bump check workflow --- .github/workflows/check-version-bump.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-version-bump.yml b/.github/workflows/check-version-bump.yml index a5448616..4c7fee86 100644 --- a/.github/workflows/check-version-bump.yml +++ b/.github/workflows/check-version-bump.yml @@ -1,5 +1,6 @@ # Catches when developers forget to add a version bump for their changes. -# Code changes (e.g. lib/) require package.json + CHANGELOG.md; test-only or comment-only in lib/ skip. +# Code changes (lib/, webpack/, dist/) require package.json + CHANGELOG.md. +# Skips for: test-only, docs, .github (workflows/config), or comment-only in lib/. name: Check Version Bump on: @@ -27,15 +28,16 @@ jobs: echo "$FILES" | grep -qx 'package.json' && VERSION_FILES_CHANGED=true echo "$FILES" | grep -qx 'CHANGELOG.md' && VERSION_FILES_CHANGED=true echo "version_files_changed=$VERSION_FILES_CHANGED" >> $GITHUB_OUTPUT + # Only lib/, webpack/, dist/, package.json count as release-affecting; .github/ and test/ do not CODE_CHANGED=false echo "$FILES" | grep -qE '^lib/|^webpack/|^dist/' && CODE_CHANGED=true echo "$FILES" | grep -qx 'package.json' && CODE_CHANGED=true echo "code_changed=$CODE_CHANGED" >> $GITHUB_OUTPUT - - name: Skip when only test/docs/config changed + - name: Skip when only test/docs/.github changed if: steps.detect.outputs.code_changed != 'true' run: | - echo "No release-affecting files changed (e.g. only test/docs). Skipping version-bump check." + echo "No release-affecting files changed (e.g. only test/docs/.github). Skipping version-bump check." exit 0 - name: Fail when version bump was missed From 1c31149536175c557bddd59eac4c9ef95e6b0e50 Mon Sep 17 00:00:00 2001 From: "harshitha.d" Date: Thu, 12 Mar 2026 10:38:05 +0530 Subject: [PATCH 3/3] update version bump check workflow --- .github/workflows/check-version-bump.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-version-bump.yml b/.github/workflows/check-version-bump.yml index 4c7fee86..787c53cc 100644 --- a/.github/workflows/check-version-bump.yml +++ b/.github/workflows/check-version-bump.yml @@ -1,6 +1,6 @@ # Catches when developers forget to add a version bump for their changes. # Code changes (lib/, webpack/, dist/) require package.json + CHANGELOG.md. -# Skips for: test-only, docs, .github (workflows/config), or comment-only in lib/. +# Skips for: test-only, docs, .github (workflows/config). name: Check Version Bump on: