Skip to content
This repository was archived by the owner on Nov 16, 2025. It is now read-only.

Commit 7ac8b3b

Browse files
committed
fix: prevent double pre-release suffix in version tags
The release script now properly detects when version.xcconfig already contains a pre-release suffix and uses it as-is, preventing tags like 'v2.0.0-beta.3-beta.3'
1 parent 8a7665d commit 7ac8b3b

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

scripts/release.sh

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,12 +126,47 @@ echo ""
126126
MARKETING_VERSION=$(grep 'MARKETING_VERSION' "$PROJECT_ROOT/VibeMeter/version.xcconfig" | sed 's/.*MARKETING_VERSION = \(.*\)/\1/')
127127
BUILD_NUMBER=$(grep 'CURRENT_PROJECT_VERSION' "$PROJECT_ROOT/VibeMeter/version.xcconfig" | sed 's/.*CURRENT_PROJECT_VERSION = \(.*\)/\1/')
128128

129+
# Check if MARKETING_VERSION already contains a pre-release suffix
130+
if [[ "$MARKETING_VERSION" =~ ^([0-9]+\.[0-9]+\.[0-9]+)(-(.+))?$ ]]; then
131+
BASE_VERSION="${BASH_REMATCH[1]}"
132+
EXISTING_SUFFIX="${BASH_REMATCH[3]}"
133+
else
134+
echo -e "${RED}❌ Error: Invalid version format in version.xcconfig: $MARKETING_VERSION${NC}"
135+
exit 1
136+
fi
137+
129138
# Determine release version
130139
if [[ "$RELEASE_TYPE" == "stable" ]]; then
140+
if [[ -n "$EXISTING_SUFFIX" ]]; then
141+
echo -e "${YELLOW}⚠️ Warning: version.xcconfig contains pre-release suffix '$EXISTING_SUFFIX' for a stable release${NC}"
142+
echo "The MARKETING_VERSION should be just '$BASE_VERSION' for stable releases."
143+
echo ""
144+
read -p "Continue with version $MARKETING_VERSION? (y/n): " confirm
145+
if [[ "$confirm" != "y" ]]; then
146+
echo -e "${RED}❌ Release cancelled. Please update version.xcconfig first.${NC}"
147+
exit 1
148+
fi
149+
fi
131150
RELEASE_VERSION="$MARKETING_VERSION"
132151
TAG_NAME="v$RELEASE_VERSION"
133152
else
134-
RELEASE_VERSION="$MARKETING_VERSION-$RELEASE_TYPE.$PRERELEASE_NUMBER"
153+
# For pre-releases, check if version already has the correct suffix
154+
EXPECTED_SUFFIX="$RELEASE_TYPE.$PRERELEASE_NUMBER"
155+
156+
if [[ -n "$EXISTING_SUFFIX" ]]; then
157+
if [[ "$EXISTING_SUFFIX" == "$EXPECTED_SUFFIX" ]]; then
158+
# Version already has the correct pre-release suffix
159+
RELEASE_VERSION="$MARKETING_VERSION"
160+
else
161+
echo -e "${RED}❌ Error: version.xcconfig has suffix '$EXISTING_SUFFIX' but expected '$EXPECTED_SUFFIX'${NC}"
162+
echo "Please update version.xcconfig to have MARKETING_VERSION = $BASE_VERSION-$EXPECTED_SUFFIX"
163+
exit 1
164+
fi
165+
else
166+
# No suffix in version.xcconfig, add it
167+
RELEASE_VERSION="$BASE_VERSION-$EXPECTED_SUFFIX"
168+
echo -e "${YELLOW}⚠️ Note: Adding pre-release suffix to create version $RELEASE_VERSION${NC}"
169+
fi
135170
TAG_NAME="v$RELEASE_VERSION"
136171
fi
137172

0 commit comments

Comments
 (0)