Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
108d571
refactor: COMMUNITY_QUERY_KEY로 쿼리 키 변경 및 불필요한 코드 제거
gwagjiug Jul 22, 2025
a626fd4
Refactor(client): 커뮤니티 쿼리키 통합 (#342)
gwagjiug Jul 22, 2025
2051cca
feat: README 프로필 추가
jeonghoon11 Jul 22, 2025
c2aad85
Update README.md
gwagjiug Jul 23, 2025
2a41e06
Update README.md
gwagjiug Jul 23, 2025
b2c463e
fix: tanstack/react-query 및 @tanstack/react-query-devtools 버전 업데이트
gwagjiug Jul 23, 2025
c605161
refactor: 불필요한 주석 제거
gwagjiug Jul 23, 2025
2be2781
refactor: 사용자, 보험 및 커뮤니티 관련 타입 정의 정리 및 주석 추가
gwagjiug Jul 23, 2025
ccd89e9
refactor: landing 쿼리 파일 삭제
gwagjiug Jul 23, 2025
995165f
refactor: 무한 스크롤 쿼리 옵션으로 변경 및 중복 코드 제거
gwagjiug Jul 23, 2025
d4718cd
refactor: 무한 스크롤 쿼리 옵션 통합 및 초기 페이지 매개변수 제거
gwagjiug Jul 23, 2025
8828b7a
refactor: 커뮤니티 쿼리 옵션 통합 및 불필요한 코드 제거
gwagjiug Jul 23, 2025
071e0c1
refactor: 커뮤니티 관련 뮤테이션 키 추가 및 코드 정리
gwagjiug Jul 23, 2025
6942d26
refactor: 커뮤니티 뮤테이션 옵션 추가 및 관련 코드 정리
gwagjiug Jul 23, 2025
82faa70
refactor: 커뮤니티 뮤테이션 통합 및 관련 코드 정리
gwagjiug Jul 23, 2025
1155e90
Chore(project): README 최신화 (#343)
gwagjiug Jul 23, 2025
900cd3e
refactor: 불필요한 임포트 제거 및 보험 쿼리 키 정리
gwagjiug Jul 23, 2025
a71ad35
refactor: COMMUNITY_QUERY_KEY에 as const 추가
gwagjiug Jul 23, 2025
d108cf9
refactor: postId 오류 메시지 수정
gwagjiug Jul 23, 2025
b887609
CI/CD(*): ChangeSet setting (version control) (#340)
minjeoong Jul 24, 2025
d8673eb
refactor: 불필요한 임포트 제거 및 코드 정리
gwagjiug Jul 24, 2025
fdfa576
refactor: feedDetailData로 변수명 변경 및 관련 코드 수정
gwagjiug Jul 24, 2025
6464403
refactor: mutate 변수명을 createCommentMutate로 변경
gwagjiug Jul 24, 2025
c453cd4
Merge branch 'develop' of https://github.com/team-bofit/bofit-client …
gwagjiug Jul 24, 2025
6a88533
Refactor(client): 커뮤니티 queries 파일 mutationOptions 활용 리팩토링 (#345)
gwagjiug Jul 24, 2025
ed317b4
Fix(client): 마이페이지 navigate 버튼 로직 수정 (#351)
gwagjiug Jul 29, 2025
2fca67f
Feat(client): 카카오 로그인 URL 및 리다이렉트 URI 로컬 & 배포 환경 설정 추가 (#354)
gwagjiug Jul 29, 2025
5ec8413
Version-Contol(v.0.0.0) (#356)
minjeoong Aug 1, 2025
07e2f2a
Fix(bds): svg파일 이미지 벗어남 문제 해결 (#347)
jeonghoon11 Aug 1, 2025
dc83b9b
CI/CD(*): 버전 컨트롤 github action yml 수정 (#359)
minjeoong Aug 7, 2025
668c3f0
CI/CE(*): main 브랜치 배포 PR open 시 changeset version 자동화, base 변경 (#362)
minjeoong Aug 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
8 changes: 8 additions & 0 deletions .changeset/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
13 changes: 13 additions & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json",
"changelog": [
"@changesets/changelog-github",
{ "repo": "team-bofit/bofit-client" }
],
"commit": false,
"linked": [],
"access": "restricted",
"baseBranch": "develop",
"updateInternalDependencies": "patch",
"ignore": []
}
58 changes: 58 additions & 0 deletions .github/workflows/version-dump.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# .github/workflows/version-bump-on-release.yml

name: Version & Changelog (on release PR)

on:
pull_request:
branches: [main]
types: [opened, synchronize, reopened]

permissions:
contents: write

jobs:
version-release:
runs-on: ubuntu-latest
if: github.event.pull_request.base.ref == 'main' && github.event.pull_request.head.ref == 'develop'

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.head_ref }}

- name: 📦 Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9.12.0

- name: ⚙️ Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'

- name: Install dependencies
run: pnpm install

- name: Check for changeset files
run: |
if [ -z "$(ls .changeset/*.md 2>/dev/null)" ]; then
echo "❌ changeset 파일이 없습니다."
exit 1
fi

echo "✅ changeset 파일이 있습니다:"
ls -la .changeset/*.md

- name: Version bump
run: pnpm changeset version

- name: Commit and push
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add .
git commit -m "chore: release version" || echo "No changes to commit"
git push origin HEAD:${{ github.head_ref }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,6 @@ tsconfig.tsbuildinfo
# Storybook
*storybook.log
storybook-static

# Changesets
.changeset/pre.json
291 changes: 291 additions & 0 deletions CHANGESETS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,291 @@
# Changesets 가이드

이 프로젝트는 [Changesets](https://github.com/changesets/changesets)를 사용하여 모노레포의 버전 관리를 자동화합니다.

## 🚀 개발 워크플로우

### 1단계: 기능 개발

```bash
# develop 브랜치에서 작업
git checkout develop
git pull origin develop

# 새 기능 브랜치 생성
git checkout -b feature/새로운-기능/#이슈번호
```

### 2단계: 변경사항 작업

코드를 수정한 후:

```bash
# 변경사항 커밋
git add .
git commit -m "feat: 새로운 기능 추가"

# develop에 push
git push origin feature/새로운-기능/#이슈번호
```

### 3단계: develop에 PR 생성

**develop에 PR을 올릴 때는 changeset이 필요하지 않습니다!**

```bash
# GitHub에서 feature/새로운-기능 → develop으로 PR 생성
# 팀원들이 리뷰 후 develop에 머지
```

### 4단계: main으로 PR 생성 시 Changeset 생성 ⭐ 중요!

**develop에서 main으로 PR을 생성할 때만 changeset이 필요합니다:**

```bash
# develop에서 main으로 PR 생성 전에 changeset 생성
pnpm changeset
```

#### Changeset 생성 과정:

1. **패키지 선택**: 스페이스바로 변경된 패키지 선택

```
🦋 Which packages would you like to include?
◯ @bofit/client
◯ @bds/ui
```

2. **버전 타입 선택**:
- `major`: 하위 호환성 깨짐 (breaking changes)
- `minor`: 새로운 기능 추가 (하위 호환)
- `patch`: 버그 수정, 문서 업데이트

3. **변경사항 설명 작성**:
```
🦋 Please enter a summary for this change:
새로운 로그인 기능 추가 및 UI 개선
```

### 5단계: main PR 생성 및 배포

```bash
# changeset 생성 후 develop에서 main으로 PR 생성
# GitHub Actions에서 changeset 검증
# PR 리뷰 후 main에 머지
# 자동으로 버전 업데이트 및 배포
```

## 📦 패키지별 버전 관리 가이드

### 주요 패키지들

| 패키지 | 설명 | 버전 규칙 |
| --------------- | ----------------------- | -------------------------------------------- |
| `@bofit/client` | 클라이언트 애플리케이션 | 기능 추가 시 minor, breaking change 시 major |
| `@bds/ui` | 디자인 시스템 | 컴포넌트 추가 시 minor, API 변경 시 major |

### 버전 업데이트 규칙

#### 🟢 Patch (0.0.x)

- 버그 수정
- 문서 업데이트
- 타입 정의 수정
- 성능 개선

#### 🟡 Minor (0.x.0)

- 새로운 기능 추가
- 새로운 컴포넌트 추가
- 새로운 API 엔드포인트 추가
- 하위 호환되는 변경사항

#### 🔴 Major (x.0.0)

- Breaking changes
- API 변경
- 컴포넌트 props 변경
- 하위 호환성 깨짐

## 🔧 유용한 명령어들

```bash
# Changeset 생성 (main PR 생성 시에만)
pnpm changeset

# Changeset 상태 확인
pnpm changeset status

# 버전 업데이트 (로컬에서만)
pnpm version

# 릴리스 (빌드 + 배포)
pnpm release

# Changeset 파일들 확인
ls .changeset/*.md
```

## 📋 PR 체크리스트

### develop → develop PR (changeset 불필요)

- [ ] 코드 리뷰 완료
- [ ] 테스트 통과
- [ ] develop에 머지

### develop → main PR (changeset 필수)

- [ ] Changeset 생성 완료 (`pnpm changeset`)
- [ ] Changeset 파일이 `.changeset/` 폴더에 존재
- [ ] 변경사항 설명이 명확하게 작성됨
- [ ] 적절한 버전 타입 선택 (major/minor/patch)
- [ ] 코드 리뷰 완료
- [ ] 테스트 통과
- [ ] GitHub Actions에서 changeset 검증 확인

## 🚨 자주 발생하는 실수들

### ❌ 잘못된 예시들:

1. **develop PR에서 changeset 검증 실패**

```
❌ Error: No changesets found! Please create a changeset using 'pnpm changeset'
```

→ develop PR에서는 changeset이 필요하지 않습니다!

2. **main PR에서 changeset 없이 생성**

```
❌ Error: No changesets found! Please create a changeset using 'pnpm changeset'
```

→ main PR에서는 changeset이 필수입니다!

3. **부적절한 버전 타입**

```markdown
# 버그 수정인데 major로 설정

---

## '@bofit/client': major

버그 수정
```

### ✅ 올바른 예시들:

1. **적절한 버전 타입**

```markdown
---
'@bofit/client': minor
'@bds/ui': patch
---

버튼 컴포넌트 버그 수정
```

2. **명확한 설명**

```markdown
---
'@bofit/client': patch
---

로그인 페이지에서 발생하는 500 에러 수정
```

## 🔄 워크플로우 예시

### 시나리오 1: 새로운 기능 추가

```bash
# 1. 개발
git checkout -b feature/new-login
# ... 코드 작성 ...

# 2. develop에 PR 생성 (changeset 불필요)
git add .
git commit -m "feat: 소셜 로그인 기능 추가"
git push origin feature/new-login
# GitHub에서 feature/new-login → develop으로 PR 생성

# 3. develop에 머지 후, main으로 PR 생성 시 changeset 생성
pnpm changeset
# @bofit/client 선택, minor 선택
# "새로운 소셜 로그인 기능 추가" 입력

# 4. main으로 PR 생성
# GitHub에서 develop → main으로 PR 생성
```

### 시나리오 2: 버그 수정

```bash
# 1. 개발
git checkout -b fix/login-error
# ... 버그 수정 ...

# 2. develop에 PR 생성 (changeset 불필요)
git add .
git commit -m "fix: 로그인 500 에러 수정"
git push origin fix/login-error
# GitHub에서 fix/login-error → develop으로 PR 생성

# 3. develop에 머지 후, main으로 PR 생성 시 changeset 생성
pnpm changeset
# @bofit/client 선택, patch 선택
# "로그인 시 발생하는 500 에러 수정" 입력

# 4. main으로 PR 생성
# GitHub에서 develop → main으로 PR 생성
```

## 🆘 문제 해결

### Changeset 생성 시 오류

```bash
# 패키지가 선택되지 않음
🦋 Which packages would you like to include? · No items were selected
🦋 error You must select at least one package to release

# 해결: 스페이스바로 패키지 선택 후 엔터
```

### Changeset 파일 삭제

```bash
# 실수로 잘못된 changeset 생성 시
rm .changeset/파일명.md
```

### Changeset 상태 확인

```bash
# 현재 changeset 상태 확인
pnpm changeset status
```

## 📞 도움말

- **Changesets 공식 문서**: https://github.com/changesets/changesets
- **GitHub Actions 로그**: PR의 Actions 탭에서 확인
- **팀 리드에게 문의**: 복잡한 버전 관리 상황

## 🎯 핵심 포인트

1. **develop PR**: changeset 불필요
2. **main PR**: changeset 필수
3. **적절한 버전 타입 선택**
4. **명확한 변경사항 설명**
5. **PR에서 GitHub Actions 확인**

---

**💡 팁**: develop에서 자유롭게 개발하고, main 배포 시에만 버전 관리를 하면 됩니다!
Loading