버전 관리를 워크플로로, 귀찮은 일 없애기
릴리스할 때마다 pyproject.toml / package.json / Cargo.toml의 버전 문자열을 손으로 고치는 건 까먹기 쉽고 에러도 잘 터져. 그러니까 자동화하자.
접근 방식
1) Conventional Commits + 자동 범프
- 커밋이
feat: ...,fix: ...,feat!: ...형식을 따르게 해. - release-please나 semantic-release 같은 도구가 커밋 기록을 읽고 patch, minor, major 중 어느 걸로 올릴지 정해.
- 범프 PR이나 커밋으로 버전과 changelog를 업데이트하고 태그도 만들어.
2) 'kind' 입력값을 받는 수동 workflow_dispatch
kind: choice [patch, minor, major]입력값과 함께 릴리스 워크플로를 실행해.- 워크플로가
npm version $kind나uv version --bump $kind를 실행하고 커밋, 태그, 푸시까지 처리해. - Conventional Commits보다 번거로움이 적은 대신, 사람이 직접 판단할 부분이 더 많아.
3) Calendar versioning (CalVer)
- 날짜 자체를 버전으로 써:
2026.04.30. - 범프할지 결정할 필요 없어. 새 날짜로 릴리스하면 자동으로 더 최신이 되니까.
- Semver 스타일의 API 계약이 없는 제품엔 이게 최선이야.