Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
2ddfc46
chore: prepare beta release
Seungwoo321 Jun 20, 2025
6faec12
chore: update lockfile
Seungwoo321 Jun 20, 2025
9b0077c
hotfix: npm 배포 동기화 문제 해결 (#246)
Seungwoo321 Jun 20, 2025
584e3f9
chore: update lockfile after peerDependencies changes
Seungwoo321 Jun 20, 2025
7a6d2da
chore: prepare beta release
github-actions[bot] Jun 20, 2025
c6a92bd
fix: restore peerDependencies to prevent beta version pollution
github-actions[bot] Jun 20, 2025
655b3b1
test: 단일 패키지 배포 시나리오 테스트
Seungwoo321 Jun 20, 2025
edcd850
Merge branch 'develop' of github.Seungwoo321:vue-pivottable/vue3-pivo…
Seungwoo321 Jun 20, 2025
fe01fb6
fix: peerDependencies 자동 업데이트 방지 및 lockfile 제거
Seungwoo321 Jun 20, 2025
df9114f
chore: prepare beta release
github-actions[bot] Jun 20, 2025
adef4f9
fix: restore peerDependencies to prevent beta version pollution
github-actions[bot] Jun 20, 2025
6b76788
fix: GitHub Release 중복 방지 및 peerDependencies 자동 업데이트 방지
Seungwoo321 Jun 20, 2025
687e87d
Merge branch 'develop' of github.Seungwoo321:vue-pivottable/vue3-pivo…
Seungwoo321 Jun 20, 2025
646ada0
test: 2개 패키지 배포 시나리오 테스트
Seungwoo321 Jun 20, 2025
e9d99e6
chore: prepare beta release
github-actions[bot] Jun 20, 2025
7de91e8
chore: clean up backup files
Seungwoo321 Jun 20, 2025
d29dbcb
fix: 베타 타임스탬프 교체 로직 개선 및 시나리오 테스트 (#248)
Seungwoo321 Jun 20, 2025
d37564b
chore: prepare beta release
github-actions[bot] Jun 20, 2025
d8c5bff
fix: 올바른 베타 버전 관리 로직 구현 (#249)
Seungwoo321 Jun 20, 2025
05303f1
chore: prepare beta release
github-actions[bot] Jun 20, 2025
d72a22d
test: 수정된 베타 버전 증가 로직 테스트 (#250)
Seungwoo321 Jun 20, 2025
03a5b79
chore: prepare beta release
github-actions[bot] Jun 20, 2025
87bab8a
chore: 백업 파일 정리 및 .gitignore 업데이트 (#252)
Seungwoo321 Jun 20, 2025
6562c65
fix: 베타 버전일 때 타임스탬프만 업데이트하도록 수정 (#251)
Seungwoo321 Jun 20, 2025
df8c87d
fix: rows/cols가 비어있을 때 Vue2와 동일하게 렌더링되도록 수정 (#254)
Seungwoo321 Jul 7, 2025
4bb94ff
chore: prepare beta release
github-actions[bot] Jul 7, 2025
3622906
fix:prevent VDragAndDropCell from disappearing on missing attribute #…
gingerbeerlime Jul 7, 2025
c9b80cb
chore: PR #253에 대한 changeset 추가 (#255)
Seungwoo321 Jul 7, 2025
b6d1d7f
chore: prepare beta release
github-actions[bot] Jul 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 79 additions & 31 deletions .github/workflows/release-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,19 +59,55 @@ jobs:
fi
done

# Store package.json files BEFORE changeset to preserve peerDependencies
echo "Backing up peerDependencies before changeset..."
for pkg in packages/*/; do
if [ -d "$pkg" ] && [ -f "$pkg/package.json" ]; then
cp "$pkg/package.json" "$pkg/package.json.backup"
echo "✓ Backed up $pkg/package.json"
fi
done

# Apply changesets and consume them
pnpm changeset version

# Check for version changes and update to beta
# Ensure beta versions on develop branch
TIMESTAMP=$(date +%s)
CHANGED_PACKAGES=""

# Function to update beta timestamp (preserving version increments)
update_beta_timestamp() {
local current_version=$1
local timestamp=$2

# If already has beta suffix, replace only the timestamp
if [[ "$current_version" == *"-beta."* ]]; then
echo "$current_version" | sed "s/-beta\.[0-9]*$/-beta.${timestamp}/"
else
# Add beta suffix to non-beta versions
echo "${current_version}-beta.${timestamp}"
fi
}

# Apply beta suffixes to packages
echo "Applying beta timestamps to packages..."

# Check main package
NEW_MAIN=$(node -p "require('./package.json').version")
if [ "$ORIGINAL_MAIN" != "$NEW_MAIN" ]; then
BETA_VERSION="${NEW_MAIN}-beta.${TIMESTAMP}"
npm version $BETA_VERSION --no-git-tag-version

# If version changed OR doesn't have beta suffix, update it
if [ "$ORIGINAL_MAIN" != "$NEW_MAIN" ] || [[ "$NEW_MAIN" != *"-beta."* ]]; then
# If already has beta, just update timestamp; otherwise add beta
if [[ "$NEW_MAIN" == *"-beta."* ]]; then
BETA_MAIN=$(echo "$NEW_MAIN" | sed "s/-beta\.[0-9]*$/-beta.${TIMESTAMP}/")
else
BETA_MAIN="${NEW_MAIN}-beta.${TIMESTAMP}"
fi
npm version $BETA_MAIN --no-git-tag-version
CHANGED_PACKAGES="vue-pivottable"
echo "✓ Updated vue-pivottable: $NEW_MAIN → $BETA_MAIN"
else
echo "✓ vue-pivottable unchanged: $NEW_MAIN"
fi

# Check sub-packages
Expand All @@ -81,55 +117,59 @@ jobs:
PKG_NAME=$(basename "$pkg")
NEW_VERSION=$(node -p "require('./package.json').version")

# Only add beta if version changed
if [ "${ORIGINAL_VERSIONS[$PKG_NAME]}" != "$NEW_VERSION" ]; then
PKG_BETA="${NEW_VERSION}-beta.${TIMESTAMP}"
npm version $PKG_BETA --no-git-tag-version
# If version changed OR doesn't have beta suffix, update it
if [ "${ORIGINAL_VERSIONS[$PKG_NAME]}" != "$NEW_VERSION" ] || [[ "$NEW_VERSION" != *"-beta."* ]]; then
# If already has beta, just update timestamp; otherwise add beta
if [[ "$NEW_VERSION" == *"-beta."* ]]; then
BETA_VERSION=$(echo "$NEW_VERSION" | sed "s/-beta\.[0-9]*$/-beta.${TIMESTAMP}/")
else
BETA_VERSION="${NEW_VERSION}-beta.${TIMESTAMP}"
fi
npm version $BETA_VERSION --no-git-tag-version
CHANGED_PACKAGES="$CHANGED_PACKAGES $PKG_NAME"
echo "✓ Updated $PKG_NAME: $NEW_VERSION → $BETA_VERSION"
else
echo "✓ $PKG_NAME unchanged: $NEW_VERSION"
fi
cd -
fi
done

# Store package.json files before changeset modifications
for pkg in packages/*/; do
if [ -d "$pkg" ] && [ -f "$pkg/package.json" ]; then
cp "$pkg/package.json" "$pkg/package.json.backup"
fi
done

# Commit all changes
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add -A
git commit -m "chore: prepare beta release

Changed packages: $CHANGED_PACKAGES"

# Restore peerDependencies from backup to prevent beta version pollution
# Restore peerDependencies from backup to prevent auto-update
echo "Restoring peerDependencies from backup..."
for pkg in packages/*/; do
if [ -d "$pkg" ] && [ -f "$pkg/package.json.backup" ]; then
cd "$pkg"
echo "Restoring peerDependencies for $(basename "$pkg")"
# Extract peerDependencies from backup and apply to current
node -e "
const fs = require('fs');
const backup = JSON.parse(fs.readFileSync('./package.json.backup', 'utf8'));
const current = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
if (backup.peerDependencies) {
console.log('Restoring peerDependencies:', backup.peerDependencies);
current.peerDependencies = backup.peerDependencies;
fs.writeFileSync('./package.json', JSON.stringify(current, null, 2) + '\\n');
}
fs.writeFileSync('./package.json', JSON.stringify(current, null, 2) + '\\n');
"
rm -f package.json.backup
cd -
fi
done

# Commit peerDependencies fix if there are changes
if ! git diff --quiet; then
git add -A
git commit -m "fix: restore peerDependencies to prevent beta version pollution"
fi
# Commit all changes
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add -A
git commit -m "chore: prepare beta release

Changed packages: $CHANGED_PACKAGES"

# Clean up backup files
for pkg in packages/*/; do
if [ -d "$pkg" ] && [ -f "$pkg/package.json.backup" ]; then
rm -f "$pkg/package.json.backup"
fi
done

git push origin develop

Expand Down Expand Up @@ -167,6 +207,14 @@ jobs:
local PKG_VERSION=$2
local NPM_NAME=$3

echo "Checking if release ${PKG_NAME}@${PKG_VERSION} already exists..."

# Check if release already exists
if gh release view "${PKG_NAME}@${PKG_VERSION}" &>/dev/null; then
echo "⚠️ Release ${PKG_NAME}@${PKG_VERSION} already exists, skipping..."
return 0
fi

echo "Creating release for $PKG_NAME@$PKG_VERSION"

gh release create "${PKG_NAME}@${PKG_VERSION}" \
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@ dist
dist-ssr
*.local

# Lock files (avoid version conflicts in CI)
pnpm-lock.yaml

# Backup files
*.backup
package.json.backup

# Editor directories and files
.vscode/*
!.vscode/extensions.json
Expand Down
107 changes: 97 additions & 10 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,107 @@
# Changelog

## 1.1.7

### Patch Changes

- c9b80cb: fix: VDragAndDropCell이 속성이 없을 때 사라지는 문제 수정
- DragAndDropCell 컴포넌트에서 속성이 누락되었을 때 발생하는 문제 해결
- 이슈 #177 수정

## 1.1.7

### Patch Changes

- df8c87d: fix: rows/cols가 비어있을 때 Vue2와 동일하게 렌더링되도록 수정
- 디버그용 console.log 코드 제거
- rows/cols가 모두 비어있을 때도 테이블 구조와 총계가 표시되도록 수정
- rowAttrs가 비어있을 때 헤더에 빈 행이 추가되는 문제 해결
- Vue2의 렌더링 동작과 완전히 일치하도록 조건부 렌더링 로직 개선

## 1.1.7

### Patch Changes

- d72a22d: test: 수정된 베타 버전 증가 로직 테스트

**수정된 워크플로우 검증:**
1. changeset 실행 전 베타 접미사 제거
2. changeset version으로 버전 증가 (1.1.6 → 1.1.7, 2.0.7 → 2.0.8)
3. 증가된 버전에 베타 접미사 재적용

**기대 결과:**
- vue-pivottable: 1.1.6-beta.xxx → 1.1.7-beta.yyy
- plotly-renderer: 2.0.7-beta.xxx → 2.0.8-beta.yyy
- lazy-table-renderer: 변경 없음 (changeset 제외)

## 1.1.6

### Patch Changes

- d8c5bff: test: 올바른 베타 버전 증가 테스트

**수정된 로직 테스트:**
- changeset version의 버전 증가를 보존
- 선택적 베타 타임스탬프 적용 (변경된 패키지만)
- lazy-table-renderer는 changeset 없으므로 변경되지 않아야 함

**기대 결과:**
- vue-pivottable: 1.1.6-beta.old → 1.1.7-beta.new (버전 증가 + 새 타임스탬프)
- plotly-renderer: 2.0.7-beta.old → 2.0.8-beta.new (버전 증가 + 새 타임스탬프)
- lazy-table-renderer: 1.1.7-beta.old → 1.1.7-beta.old (변경 없음)

## 1.1.6

### Patch Changes

- d29dbcb: test: 베타 타임스탬프 교체 시나리오 테스트

**현재 상황:**
- develop 브랜치에 이미 베타 버전들이 존재
- main PR #247이 승인되지 않은 상태
- 추가 changeset으로 베타 타임스탬프 교체 테스트

**기대 결과:**
- vue-pivottable: 1.1.6-beta.OLD → 1.1.7-beta.NEW
- plotly-renderer: 2.0.7-beta.OLD → 2.0.8-beta.NEW
- lazy-table-renderer: 1.1.7-beta.OLD (변경 없음, changeset 없음)

**테스트 목표:**
- 베타 중복 방지 (1.1.7-beta.xxx-beta.yyy 같은 형태 방지)
- 새로운 타임스탬프로 교체
- main PR #247 자동 업데이트

## 1.1.6

### Patch Changes

- 655b3b1: test: 단일 패키지 배포 시나리오 테스트
- vue-pivottable만 변경하여 1개 패키지 배포 테스트
- main PR이 있는 상태에서 추가 변경사항 반영 테스트

## 1.1.6

### Patch Changes

- 9b0077c: fix: 워크플로우 및 버전 관리 시스템 개선
- develop 브랜치에서 항상 베타 버전 보장하는 로직 추가
- peerDependencies를 현재 npm latest와 일치하도록 수정
- changeset이 없어도 베타 접미사가 자동으로 추가되도록 개선
- npm 배포 충돌 및 버전 불일치 문제 근본 해결

## 1.1.6

### Patch Changes

- fix: 버전 관리 문제 해결을 위한 버전 범프
- develop 브랜치의 버전이 베타 접미사 없이 유지되는 문제 해결
- npm에 이미 배포된 버전과 충돌 방지

## 1.1.5

### Patch Changes

- 5ef202b: fix: develop 브랜치를 베타 버전으로 복구

- develop 브랜치가 정식 버전으로 잘못 업데이트된 것을 수정
- 모든 패키지를 베타 버전으로 변경
- develop 브랜치는 항상 베타 버전을 유지해야 함
Expand All @@ -15,14 +111,12 @@
### Patch Changes

- 9dd7707: fix: 베타 릴리즈 프로세스 전체 개선

- 베타 버전 중복 문제 해결 (1.1.5-beta.xxx-beta.yyy → 1.1.5-beta.yyy)
- peerDependencies 베타 버전 오염 방지
- changeset 적용 전 package.json 백업 및 peerDependencies 복원 로직 추가
- 워크플로우에서 베타 버전이 의존성에 전파되지 않도록 개선

- 9dd7707: fix: 베타 버전 중복 및 peerDependencies 오염 문제 긴급 수정

- 중복된 베타 버전 제거 (1.1.5-beta.xxx-beta.yyy → 1.1.5-beta.yyy)
- plotly-renderer의 peerDependencies를 원래 버전으로 복원

Expand All @@ -49,7 +143,6 @@
### Patch Changes

- 0c3c5b0: fix: 하위 패키지 이중 베타 버전 문제 해결

- lazy-table-renderer와 plotly-renderer의 잘못된 베타 버전 수정
- 워크플로우 개선사항 적용을 위한 릴리스 준비

Expand All @@ -58,7 +151,6 @@
### Patch Changes

- ad33eb8: fix: 프로덕션 릴리스를 위한 버전 업데이트

- 워크플로우 개선사항 반영
- 안정적인 배포 프로세스 확립

Expand All @@ -67,7 +159,6 @@
### Patch Changes

- dae29ab: fix: 베타와 프로덕션 릴리스 워크플로우 개선

- 베타와 프로덕션 모두 동일한 release-packages.cjs 스크립트 사용
- changeset이 적용된 패키지만 베타 버전 생성하도록 수정
- 프로덕션 릴리스 시 기존 릴리스 브랜치 삭제 후 재생성
Expand All @@ -78,7 +169,6 @@
### Patch Changes

- 34e74ef: fix: 프로덕션 배포가 release 브랜치에서 실행되도록 수정

- release.yml에서 release-packages.cjs 사용하도록 변경
- npm 배포 전 release 브랜치로 checkout하도록 수정
- 베타와 프로덕션 배포가 동일한 스크립트 사용
Expand All @@ -88,7 +178,6 @@
### Patch Changes

- c2d09a4: fix: 빌드 오류 처리 및 순서 개선

- set -e 추가로 빌드 실패 시 워크플로우 즉시 중단
- 메인 패키지를 먼저 빌드하여 타입 선언 파일 생성
- 하위 패키지들이 메인 패키지 타입을 참조할 수 있도록 순서 조정
Expand All @@ -98,7 +187,6 @@
### Patch Changes

- 224a73a: fix: 베타 릴리스 워크플로우 근본 수정 (3번째 시도)

- step ID 누락 해결: 'id: version' 추가
- 베타 중복 방지: 기존 -beta.\* 제거 후 새로 추가
- 릴리스 순서 개선: GitHub Release → npm 퍼블리시
Expand All @@ -109,7 +197,6 @@
### Patch Changes

- 1075ac6: feat: 릴리즈 브랜치를 활용한 새로운 배포 워크플로우 구현

- main 브랜치 보호 규칙을 유지하면서 자동 릴리즈 가능
- 각 릴리즈마다 release/v\* 브랜치 생성
- 독립적인 패키지 빌드 및 배포 지원
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "vue-pivottable",
"version": "1.1.5",
"version": "1.1.7-beta.1751879666",
"type": "module",
"description": "",
"exports": {
Expand Down
26 changes: 26 additions & 0 deletions packages/lazy-table-renderer/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,32 @@

### Patch Changes

- 646ada0: test: 2개 패키지 배포 시나리오 테스트

- plotly-renderer와 lazy-table-renderer만 변경
- vue-pivottable은 변경하지 않음
- GitHub Release 중복 방지 테스트
- peerDependencies 자동 업데이트 방지 테스트
- [email protected]

## 1.1.7

### Patch Changes

- 9b0077c: fix: 워크플로우 및 버전 관리 시스템 개선

- develop 브랜치에서 항상 베타 버전 보장하는 로직 추가
- peerDependencies를 현재 npm latest와 일치하도록 수정
- changeset이 없어도 베타 접미사가 자동으로 추가되도록 개선
- npm 배포 충돌 및 버전 불일치 문제 근본 해결

- Updated dependencies [9b0077c]
- [email protected]

## 1.1.7

### Patch Changes

- 429cf68: fix: peerDependencies가 존재하지 않는 버전을 참조하는 문제 수정

- vue-pivottable의 peerDependency를 ^1.1.5에서 ^1.1.4로 변경
Expand Down
Loading
Loading