From 26c5760bdf1afdf6ec8de86c114452c52ce4f328 Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Fri, 13 Mar 2026 17:34:44 +0800 Subject: [PATCH] fix(release): fallback root version when git-cliff does not advance it Guard the root versioning step when pending changesets exist but git-cliff returns the current version. In that case, bump the root patch version so changesets can still open the version PR instead of failing with "Version not changed". --- scripts/changeset-version.sh | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/scripts/changeset-version.sh b/scripts/changeset-version.sh index 5d246da..8f483c9 100755 --- a/scripts/changeset-version.sh +++ b/scripts/changeset-version.sh @@ -2,6 +2,8 @@ set -euo pipefail +CURRENT_VERSION="$(node -p "require('./package.json').version")" + CLIFF_CONTEXT="$(pnpm exec git-cliff --unreleased --bump --context)" BUMPED_VERSION="$( @@ -23,7 +25,22 @@ if [ -z "${BUMPED_VERSION}" ]; then exit 1 fi -pnpm version "${BUMPED_VERSION}" --no-git-tag-version +PENDING_CHANGESET_COUNT="$( + find .changeset -maxdepth 1 -name '*.md' ! -name 'README.md' | wc -l | tr -d ' ' +)" + +if [ "${BUMPED_VERSION}" = "${CURRENT_VERSION}" ] && [ "${PENDING_CHANGESET_COUNT}" -gt 0 ]; then + BUMPED_VERSION="$( + node -e ' + const [major, minor, patch] = process.argv[1].split(".").map(Number); + process.stdout.write(`${major}.${minor}.${patch + 1}`); + ' "${CURRENT_VERSION}" + )" +fi + +if [ "${BUMPED_VERSION}" != "${CURRENT_VERSION}" ]; then + pnpm version "${BUMPED_VERSION}" --no-git-tag-version +fi if [ ! -s NEXT-CHANGELOG-ENTRY.md ]; then pnpm exec git-cliff --unreleased --output NEXT-CHANGELOG-ENTRY.md --strip header --bump