Skip to content

Latest commit

ย 

History

History
291 lines (203 loc) ยท 6.63 KB

File metadata and controls

291 lines (203 loc) ยท 6.63 KB

Changesets ๊ฐ€์ด๋“œ

์ด ํ”„๋กœ์ ํŠธ๋Š” Changesets๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋…ธ๋ ˆํฌ์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿš€ ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ

1๋‹จ๊ณ„: ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

# develop ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…
git checkout develop
git pull origin develop

# ์ƒˆ ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
git checkout -b feature/์ƒˆ๋กœ์šด-๊ธฐ๋Šฅ/#์ด์Šˆ๋ฒˆํ˜ธ

2๋‹จ๊ณ„: ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ž‘์—…

์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•œ ํ›„:

# ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ปค๋ฐ‹
git add .
git commit -m "feat: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€"

# develop์— push
git push origin feature/์ƒˆ๋กœ์šด-๊ธฐ๋Šฅ/#์ด์Šˆ๋ฒˆํ˜ธ

3๋‹จ๊ณ„: develop์— PR ์ƒ์„ฑ

develop์— PR์„ ์˜ฌ๋ฆด ๋•Œ๋Š” changeset์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

# GitHub์—์„œ feature/์ƒˆ๋กœ์šด-๊ธฐ๋Šฅ โ†’ develop์œผ๋กœ PR ์ƒ์„ฑ
# ํŒ€์›๋“ค์ด ๋ฆฌ๋ทฐ ํ›„ develop์— ๋จธ์ง€

4๋‹จ๊ณ„: main์œผ๋กœ PR ์ƒ์„ฑ ์‹œ Changeset ์ƒ์„ฑ โญ ์ค‘์š”!

develop์—์„œ main์œผ๋กœ PR์„ ์ƒ์„ฑํ•  ๋•Œ๋งŒ changeset์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

# 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 ์ƒ์„ฑ ๋ฐ ๋ฐฐํฌ

# 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 ๋ณ€๊ฒฝ
  • ํ•˜์œ„ ํ˜ธํ™˜์„ฑ ๊นจ์ง

๐Ÿ”ง ์œ ์šฉํ•œ ๋ช…๋ น์–ด๋“ค

# 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. ๋ถ€์ ์ ˆํ•œ ๋ฒ„์ „ ํƒ€์ž…

    # ๋ฒ„๊ทธ ์ˆ˜์ •์ธ๋ฐ major๋กœ ์„ค์ •
    
    ---
    
    ## '@bofit/client': major
    
    ๋ฒ„๊ทธ ์ˆ˜์ •

โœ… ์˜ฌ๋ฐ”๋ฅธ ์˜ˆ์‹œ๋“ค:

  1. ์ ์ ˆํ•œ ๋ฒ„์ „ ํƒ€์ž…

    ---
    '@bofit/client': minor
    '@bds/ui': patch
    ---
    
    ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ ๋ฒ„๊ทธ ์ˆ˜์ •
  2. ๋ช…ํ™•ํ•œ ์„ค๋ช…

    ---
    '@bofit/client': patch
    ---
    
    ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์—์„œ ๋ฐœ์ƒํ•˜๋Š” 500 ์—๋Ÿฌ ์ˆ˜์ •

๐Ÿ”„ ์›Œํฌํ”Œ๋กœ์šฐ ์˜ˆ์‹œ

์‹œ๋‚˜๋ฆฌ์˜ค 1: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€

# 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: ๋ฒ„๊ทธ ์ˆ˜์ •

# 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 ์ƒ์„ฑ ์‹œ ์˜ค๋ฅ˜

# ํŒจํ‚ค์ง€๊ฐ€ ์„ ํƒ๋˜์ง€ ์•Š์Œ
๐Ÿฆ‹ Which packages would you like to include? ยท No items were selected
๐Ÿฆ‹ error You must select at least one package to release

# ํ•ด๊ฒฐ: ์ŠคํŽ˜์ด์Šค๋ฐ”๋กœ ํŒจํ‚ค์ง€ ์„ ํƒ ํ›„ ์—”ํ„ฐ

Changeset ํŒŒ์ผ ์‚ญ์ œ

# ์‹ค์ˆ˜๋กœ ์ž˜๋ชป๋œ changeset ์ƒ์„ฑ ์‹œ
rm .changeset/ํŒŒ์ผ๋ช….md

Changeset ์ƒํƒœ ํ™•์ธ

# ํ˜„์žฌ 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 ๋ฐฐํฌ ์‹œ์—๋งŒ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค!