diff --git a/.changeset/docs-and-pr-update.md b/.changeset/docs-and-pr-update.md new file mode 100644 index 0000000..18ce026 --- /dev/null +++ b/.changeset/docs-and-pr-update.md @@ -0,0 +1,7 @@ +--- +"@vue-pivottable/plotly-renderer": patch +--- + +chore: plotly-renderer peerDependency를 'latest'로 변경 + +- 베타 버전 대신 'latest'를 사용하여 더 유연한 버전 관리 가능 \ No newline at end of file diff --git a/.github/workflows/release-develop.yml b/.github/workflows/release-develop.yml index 41f7918..00a1e9e 100644 --- a/.github/workflows/release-develop.yml +++ b/.github/workflows/release-develop.yml @@ -120,4 +120,78 @@ jobs: This is a pre-release version. It may contain bugs and breaking changes. - Install with: `npm install vue-pivottable@beta` \ No newline at end of file + Install with: `npm install vue-pivottable@beta` + + - name: Create or Update PR to main + if: steps.changesets-check.outputs.has_changesets == 'true' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + # 현재 버전 가져오기 + VERSION=$(node -p "require('./package.json').version") + + # 기존 PR 확인 + PR_NUMBER=$(gh pr list --base main --head develop --state open --json number -q '.[0].number') + + if [ -z "$PR_NUMBER" ]; then + # 새 PR 생성 + gh pr create \ + --base main \ + --head develop \ + --title "Release: $VERSION" \ + --body "## 🚀 Release $VERSION + + This PR contains the latest beta release ready for production. + + ### Beta Version + - $VERSION + + ### Packages to be released + - vue-pivottable: $VERSION + - Check sub-packages for version updates + + ### Pre-release Testing + - Beta version has been published to npm with tag @beta + - Install with: \`npm install vue-pivottable@beta\` + + ### Release Notes + See [CHANGELOG.md](./CHANGELOG.md) for details. + + --- + ⚠️ **Note**: This PR will be automatically updated if new changes are pushed to develop." + else + # 기존 PR 업데이트 + echo "Updating existing PR #$PR_NUMBER with new beta version..." + + gh pr edit $PR_NUMBER \ + --title "Release: $VERSION" \ + --body "## 🚀 Release $VERSION (Updated) + + This PR has been automatically updated with the latest beta release. + + ### Current Beta Version + - $VERSION + + ### Packages to be released + - vue-pivottable: $VERSION + - Check sub-packages for version updates + + ### Pre-release Testing + - Beta version has been published to npm with tag @beta + - Install with: \`npm install vue-pivottable@beta\` + + ### ⚠️ Important + **This PR has been updated with new commits. Please review the changes again.** + + ### Release Notes + See [CHANGELOG.md](./CHANGELOG.md) for details. + + --- + Last updated: $(date -u +"%Y-%m-%d %H:%M:%S UTC")" + + # PR을 ready for review 상태로 설정 + gh pr ready $PR_NUMBER + + # auto-updated 라벨 추가 + gh pr edit $PR_NUMBER --add-label "auto-updated,needs-review" + fi \ No newline at end of file diff --git a/AI_USAGE_GUIDELINES.md b/AI_USAGE_GUIDELINES.md index f37c6ee..141c833 100644 --- a/AI_USAGE_GUIDELINES.md +++ b/AI_USAGE_GUIDELINES.md @@ -171,12 +171,56 @@ require → import 구문으로 변환 ## 주요 지침 -### 1. 점진적 접근 +### 1. 순차적 사고 (Sequential Thinking) +- 복잡한 작업은 단계별로 나누어 접근 +- 각 단계를 명확히 정의하고 순서대로 진행 +- 단계별 완료 확인 후 다음 단계 진행 + +#### 예시: 다중 파일 작업 +```markdown +## 작업 계획 +1. 문제 분석 및 영향 범위 파악 +2. 첫 번째 파일 수정 +3. 테스트 및 검증 +4. 두 번째 파일 수정 +5. 전체 통합 테스트 +``` + +### 2. 점진적 접근 - 한 번에 하나의 문제만 해결 - 각 단계마다 테스트 수행 - 결과 보고 후 다음 단계 진행 -### 2. 명확한 근거 제시 +### 3. MCP 서버 활용 +- **sequential-thinking MCP 서버가 설정된 경우**: 복잡한 문제 해결 시 활용 +- **context7 MCP 서버가 설정된 경우**: 기술적 이슈나 최신 내용 확인이 필요할 때 사용 +- MCP 서버가 없는 경우: 순차적 사고 방식으로 접근 + +#### MCP 서버 사용 예시 +```markdown +# sequential-thinking 서버 +- 복잡한 버그 디버깅 +- 다단계 리팩토링 작업 +- 의존성 업데이트 영향 분석 + +# context7 서버 +- 최신 라이브러리 API 확인 +- 보안 이슈 검토 +- 성능 최적화 가이드 +``` + +### 4. Task 도구 활용 +- 여러 파일에 걸친 복잡한 검색이나 분석 작업 시 활용 +- 단순한 파일 읽기보다 복잡한 패턴 검색이나 코드 분석이 필요할 때 + +#### 예시: Task 도구 사용 케이스 +```markdown +- ESLint 설정 파일과 관련된 모든 사용처 찾기 +- 특정 타입이 프로젝트 전체에서 어떻게 사용되는지 분석 +- 의존성 업데이트가 미치는 영향 범위 파악 +``` + +### 5. 명확한 근거 제시 ```markdown // 좋은 예시 "RendererDefinition에서 renderer 속성이 실제로 사용되는 곳이 없습니다. @@ -187,14 +231,14 @@ grep 검색 결과: [검색 결과 첨부] "이 속성은 필요 없어 보입니다." ``` -### 3. 사용자 의도 확인 +### 6. 사용자 의도 확인 ```markdown "기존 코드의 의도를 확인하고 싶습니다." "어떤 방향으로 진행할까요?" "이렇게 수정하는 것이 맞을까요?" ``` -### 4. 테스트 결과 공유 +### 7. 테스트 결과 공유 ```bash # 항상 다음 명령어로 검증 pnpm lint # ESLint 검사 diff --git a/README.ko.md b/README.ko.md index c180151..94430ed 100644 --- a/README.ko.md +++ b/README.ko.md @@ -1,13 +1,13 @@ # Vue Pivottable +> [English](./README.md) | 한국어 + [![All Contributors](https://img.shields.io/badge/all_contributors-3-orange.svg?style=flat-square)](#contributors-) [![npm](https://flat.badgen.net/npm/v/vue-pivottable)](https://npmjs.com/package/vue-pivottable) [![npm](https://flat.badgen.net/npm/dt/vue-pivottable)](https://npmjs.com/package/vue-pivottable) [![npm](https://flat.badgen.net/npm/license/vue-pivottable)](https://flat.badgen.net/npm/license/vue-pivottable) [![jsdelivr](https://data.jsdelivr.com/v1/package/npm/vue-pivottable/badge)](https://www.jsdelivr.com/package/npm/vue-pivottable) -> [English](./README.md) | 한국어 - **Vue 3용 피벗 테이블 컴포넌트** `vue-pivottable`은 Vue 3 호환 피벗 테이블 컴포넌트로, 인기 있는 [react-pivottable](https://github.com/plotly/react-pivottable)의 Vue 래퍼입니다. 이 라이브러리를 사용하면 대용량 데이터셋을 피벗 테이블 UI에서 쉽게 요약, 변환, 시각화할 수 있습니다. diff --git a/README.md b/README.md index ecfc3db..cd3e784 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Vue Pivottable +> English | [한국어](./README.ko.md) + [![All Contributors](https://img.shields.io/badge/all_contributors-3-orange.svg?style=flat-square)](#contributors-) [![npm](https://flat.badgen.net/npm/v/vue-pivottable)](https://npmjs.com/package/vue-pivottable) [![npm](https://flat.badgen.net/npm/dt/vue-pivottable)](https://npmjs.com/package/vue-pivottable) diff --git a/RELEASE_STRATEGY.md b/RELEASE_STRATEGY.md index f1e8c5e..f4c06b3 100644 --- a/RELEASE_STRATEGY.md +++ b/RELEASE_STRATEGY.md @@ -1,5 +1,7 @@ # Release Strategy +> English | [한국어](./RELEASE_STRATEGY.ko.md) + ## Overview This document outlines the release strategy for the vue3-pivottable monorepo, which uses Changesets for version management and supports independent package releases. @@ -79,16 +81,16 @@ Our monorepo contains three independently versioned packages: graph TD A[Changeset Files] --> B{Which packages?} B -->|vue-pivottable| C[Main Package] - B -->|@vue-pivottable/plotly-renderer| D[Plotly Renderer] - B -->|@vue-pivottable/lazy-table-renderer| E[Lazy Table Renderer] + B -->|plotly-renderer| D[Plotly Renderer] + B -->|lazy-table-renderer| E[Lazy Table Renderer] C --> F[Independent Version] D --> G[Independent Version] E --> H[Independent Version] - F --> I[Build → Publish if changed] - G --> J[Build → Publish if changed] - H --> K[Build → Publish if changed] + F --> I[Build then Publish if changed] + G --> J[Build then Publish if changed] + H --> K[Build then Publish if changed] ``` ### Configuration @@ -200,6 +202,38 @@ vue-pivottable: 1.2.0-beta.1234567890 → 1.2.0 3. **Independent versions** - Don't bump unchanged packages 4. **Quality first** - All checks must pass before publish +## Handling Updates During Release Process + +### Scenario: Changes to develop after PR to main + +When a PR from develop to main is already open and new changes are pushed to develop: + +1. **Automatic PR Update** + - The release-develop workflow automatically detects existing PR + - Updates PR title with new beta version + - Updates PR description with timestamp and new version info + - Adds `auto-updated` and `needs-review` labels + - Sets PR back to "ready for review" state + +2. **Review Process** + - Reviewers are notified of the update via labels + - Previous approvals remain but re-review is recommended + - PR description shows clear "Updated" status with timestamp + +3. **Benefits** + - PR history and discussions are preserved + - No manual intervention required + - Clear audit trail of all beta versions + +### Example Flow +``` +1. v1.2.0-beta.1234567890 → PR #123 created +2. New fix pushed to develop +3. v1.2.1-beta.2345678901 → PR #123 automatically updated +4. Reviewers see "auto-updated" label and re-review +5. Once approved, merge to main triggers stable release +``` + ## Troubleshooting ### Beta version not publishing? @@ -215,4 +249,9 @@ vue-pivottable: 1.2.0-beta.1234567890 → 1.2.0 ### Type errors in CI but not locally? - Run `pnpm typecheck` locally - Check all workspace packages: `pnpm -r typecheck` -- Ensure dependencies are up to date \ No newline at end of file +- Ensure dependencies are up to date + +### PR not updating automatically? +- Check GitHub Actions permissions +- Verify GITHUB_TOKEN has write access to PRs +- Check if PR is in open state \ No newline at end of file diff --git a/packages/plotly-renderer/package.json b/packages/plotly-renderer/package.json index dd7fa3e..adc98bf 100644 --- a/packages/plotly-renderer/package.json +++ b/packages/plotly-renderer/package.json @@ -45,7 +45,7 @@ }, "peerDependencies": { "vue": "^3.2.0", - "vue-pivottable": "1.0.1" + "vue-pivottable": "latest" }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1aa97a8..0f9778a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -143,8 +143,8 @@ importers: specifier: ^3.2.0 version: 3.5.15(typescript@5.8.3) vue-pivottable: - specifier: 1.0.1 - version: 1.0.1(sortablejs@1.15.6)(vue@3.5.15(typescript@5.8.3)) + specifier: latest + version: 1.1.1(sortablejs@1.15.6)(vue@3.5.15(typescript@5.8.3)) devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 @@ -3333,11 +3333,6 @@ packages: peerDependencies: eslint: '>=6.0.0' - vue-pivottable@1.0.1: - resolution: {integrity: sha512-khRpoXV8LthlLOA2lfFnfKmmNTHnoN2JmFxmlAsROynQBDkPgxyW+hvuQjeb8iXKDJZhXZuPEuddzm+5flnN7A==} - peerDependencies: - vue: ^3.2.0 - vue-pivottable@1.1.1: resolution: {integrity: sha512-CHz5JBJSccYsmqkI0HAM67MKI45CTvf1wk0oato8OVtSG7pttD26JAdiJyWqE+TlB2jsseCB+ansMNsnYW/n1w==} peerDependencies: @@ -6865,13 +6860,6 @@ snapshots: transitivePeerDependencies: - supports-color - vue-pivottable@1.0.1(sortablejs@1.15.6)(vue@3.5.15(typescript@5.8.3)): - dependencies: - vue: 3.5.15(typescript@5.8.3) - vue-draggable-next: 2.2.1(sortablejs@1.15.6)(vue@3.5.15(typescript@5.8.3)) - transitivePeerDependencies: - - sortablejs - vue-pivottable@1.1.1(sortablejs@1.15.6)(vue@3.5.15(typescript@5.8.3)): dependencies: vue: 3.5.15(typescript@5.8.3)