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