C.W.K.
Stream
Lesson 09 of 13 · published

버전 bump

~9 min · versioning, semver, automation

Level 0Apprentice
0 XP0/101 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

Versioning 을 workflow 로, 잡일 아니게

매 release 마다 pyproject.toml / package.json / Cargo.toml 의 버전 문자열을 수동 수정은 까먹기 쉽고 에러 잘 남. 자동화.

접근법

1) Conventional Commits + 자동 bump

  • Commit 이 feat: ..., fix: ..., feat!: ... 모양 따름.
  • 도구 (release-please, semantic-release) 가 commit log 읽고 patch / minor / major 결정.
  • Bump PR (또는 commit) 이 버전 + changelog 업데이트 + tag 생성.

2) 'kind' input 가진 수동 workflow_dispatch

  • Input kind: choice [patch, minor, major] 와 함께 release workflow trigger.
  • Workflow 가 npm version $kind / uv version --bump $kind, commit, tag, push.
  • Conventional Commits 보다 ceremony 적음; 사람 판단 더 많음.

3) Calendar versioning (CalVer)

  • 날짜를 버전으로: 2026.04.30.
  • Bump 결정 없음; 새 날짜의 다음 release 가 자동으로 더 새로움.
  • Semver 스타일 API 계약 없는 제품에 최선.

Code

수동 workflow_dispatch bump·yaml
name: bump
on:
  workflow_dispatch:
    inputs:
      kind:
        type: choice
        options: [patch, minor, major]
        default: patch
permissions:
  contents: write

jobs:
  bump:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0, token: ${{ secrets.GITHUB_TOKEN }} }
      - uses: actions/setup-node@v4
        with: { node-version: '22' }
      - name: Bump
        run: |
          git config user.email 'gha@bot'
          git config user.name 'gha bot'
          npm version ${{ inputs.kind }} -m 'chore(release): %s'
          git push --follow-tags

External links

Exercise

Repo 하나에 버전-bump 전략 선택해서 구현: release-please 설정, 수동 bump workflow 작성, 또는 명확한 CalVer 정책 문서화. 한 release 에 적용하고 ceremony 가 얼마나 사라지는지 관찰.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.