Skip to content

Commit d8c5bff

Browse files
authored
fix: 올바른 베타 버전 관리 로직 구현 (#249)
**문제점 해결:** 1. changeset version 증가를 보존하도록 수정 2. 모든 패키지가 아닌 변경된 패키지만 베타 타임스탬프 적용 3. update_beta_timestamp 함수로 버전 증가 보존 **수정된 로직:** - changeset version으로 버전 증가 (1.1.6 → 1.1.7) - 변경된 패키지만 베타 타임스탬프 적용 - sed를 사용하여 타임스탬프만 교체 **테스트 시나리오:** - vue-pivottable과 plotly-renderer에 changeset - lazy-table-renderer는 변경 없음
1 parent d37564b commit d8c5bff

File tree

4 files changed

+51
-138
lines changed

4 files changed

+51
-138
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
"vue-pivottable": patch
3+
"@vue-pivottable/plotly-renderer": patch
4+
---
5+
6+
test: 올바른 베타 버전 증가 테스트
7+
8+
**수정된 로직 테스트:**
9+
- changeset version의 버전 증가를 보존
10+
- 선택적 베타 타임스탬프 적용 (변경된 패키지만)
11+
- lazy-table-renderer는 changeset 없으므로 변경되지 않아야 함
12+
13+
**기대 결과:**
14+
- vue-pivottable: 1.1.6-beta.old → 1.1.7-beta.new (버전 증가 + 새 타임스탬프)
15+
- plotly-renderer: 2.0.7-beta.old → 2.0.8-beta.new (버전 증가 + 새 타임스탬프)
16+
- lazy-table-renderer: 1.1.7-beta.old → 1.1.7-beta.old (변경 없음)

.github/workflows/release-develop.yml

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -75,42 +75,58 @@ jobs:
7575
TIMESTAMP=$(date +%s)
7676
CHANGED_PACKAGES=""
7777
78-
# Function to ensure beta version with timestamp replacement
79-
ensure_beta_version() {
78+
# Function to update beta timestamp (preserving version increments)
79+
update_beta_timestamp() {
8080
local current_version=$1
8181
local timestamp=$2
8282
83-
# If already has beta suffix, replace the timestamp
83+
# If already has beta suffix, replace only the timestamp
8484
if [[ "$current_version" == *"-beta."* ]]; then
85-
# Extract base version before first -beta
86-
local base_version=$(echo "$current_version" | sed 's/-beta\..*//')
87-
echo "${base_version}-beta.${timestamp}"
85+
echo "$current_version" | sed "s/-beta\.[0-9]*$/-beta.${timestamp}/"
8886
else
89-
# Add beta suffix
87+
# Add beta suffix to non-beta versions
9088
echo "${current_version}-beta.${timestamp}"
9189
fi
9290
}
9391
94-
# Check main package - always ensure beta on develop
95-
CURRENT_MAIN=$(node -p "require('./package.json').version")
96-
BETA_MAIN=$(ensure_beta_version "$CURRENT_MAIN" "$TIMESTAMP")
92+
# Check which packages were changed by changeset version
93+
# Only apply beta timestamps to packages that were actually modified
94+
echo "Checking which packages were modified by changeset..."
9795
98-
if [ "$CURRENT_MAIN" != "$BETA_MAIN" ]; then
99-
npm version $BETA_MAIN --no-git-tag-version
100-
CHANGED_PACKAGES="vue-pivottable"
96+
# Check main package
97+
NEW_MAIN=$(node -p "require('./package.json').version")
98+
if [ "$ORIGINAL_MAIN" != "$NEW_MAIN" ] || [[ "$NEW_MAIN" != *"-beta."* ]]; then
99+
BETA_MAIN=$(update_beta_timestamp "$NEW_MAIN" "$TIMESTAMP")
100+
if [ "$NEW_MAIN" != "$BETA_MAIN" ]; then
101+
npm version $BETA_MAIN --no-git-tag-version
102+
CHANGED_PACKAGES="vue-pivottable"
103+
echo "✓ Updated vue-pivottable: $NEW_MAIN → $BETA_MAIN"
104+
else
105+
echo "✓ vue-pivottable already has correct beta version: $NEW_MAIN"
106+
fi
107+
else
108+
echo "✓ vue-pivottable unchanged: $NEW_MAIN"
101109
fi
102110
103-
# Check sub-packages - always ensure beta on develop
111+
# Check sub-packages
104112
for pkg in packages/*/; do
105113
if [ -d "$pkg" ] && [ -f "$pkg/package.json" ]; then
106114
cd "$pkg"
107115
PKG_NAME=$(basename "$pkg")
108-
CURRENT_VERSION=$(node -p "require('./package.json').version")
109-
BETA_VERSION=$(ensure_beta_version "$CURRENT_VERSION" "$TIMESTAMP")
116+
NEW_VERSION=$(node -p "require('./package.json').version")
110117
111-
if [ "$CURRENT_VERSION" != "$BETA_VERSION" ]; then
112-
npm version $BETA_VERSION --no-git-tag-version
113-
CHANGED_PACKAGES="$CHANGED_PACKAGES $PKG_NAME"
118+
# Only update if package was changed by changeset OR doesn't have beta suffix
119+
if [ "${ORIGINAL_VERSIONS[$PKG_NAME]}" != "$NEW_VERSION" ] || [[ "$NEW_VERSION" != *"-beta."* ]]; then
120+
BETA_VERSION=$(update_beta_timestamp "$NEW_VERSION" "$TIMESTAMP")
121+
if [ "$NEW_VERSION" != "$BETA_VERSION" ]; then
122+
npm version $BETA_VERSION --no-git-tag-version
123+
CHANGED_PACKAGES="$CHANGED_PACKAGES $PKG_NAME"
124+
echo "✓ Updated $PKG_NAME: $NEW_VERSION → $BETA_VERSION"
125+
else
126+
echo "✓ $PKG_NAME already has correct beta version: $NEW_VERSION"
127+
fi
128+
else
129+
echo "✓ $PKG_NAME unchanged: $NEW_VERSION"
114130
fi
115131
cd -
116132
fi

packages/lazy-table-renderer/package.json.backup

Lines changed: 0 additions & 61 deletions
This file was deleted.

packages/plotly-renderer/package.json.backup

Lines changed: 0 additions & 58 deletions
This file was deleted.

0 commit comments

Comments
 (0)