소프트웨어 개발자/SW 개발론

[SW 개발] 소프트웨어 버저닝 방법

yubi5050 2023. 4. 4. 01:18

Semantic Versioning

주번호(Major), 부번호(Minor), 패치번호(Patch)로 기반의 {major}.{minor}.{patch} 버저닝 방식
- 일반적으로 오픈소스에 자주 사용되는 Versioning 방법 

 

- Major : 큰 변화, 리뉴얼, API 버전 업그레이드- Minor : 신규 기능 추가/변경, 컴포넌트 추가 (하위 버전 API 와 호환 가능) - Patch : 사소한 버그 수정, 약간의 디자인 변경, 리팩토링, (하위 버전과 호환 가능) 

- 예시 : Python 3.11.4

 

 

CalVer (Calendar Versioning)

날짜 기반의 버저닝 방법

- 연도, 월로 구성

- 직관적인 버저닝으로 이해하기 쉽고, 해석이 쉬움

- 예시 : Ubuntu 20.04

 

 

Alpha, Beta, Release, Stable

알파 버전 (alpha)

  • 내부 개발 테스트 버전 (내부 테스트)

 

베타 버전 (beta)

  • 개발 최종 완성 전에 검사를 하기 위한 버전 (외부 테스트)

 

발매 버전 후보 (release candidate)

  • 베타 버전(Beta version) 보다 한단계 개선된 버전
  • 실제 환경에 배포하여 rc1 -> rc2 -> rc3 식의 과정을 거친 후 최종 배포를 진행

 

발매 버전 (final release)

  • 최종 배포 버전
  • release 태그는 생략하며, 필요에 따라 stable 표기를 합니다.
  • stable 표기시에는 stable 버전 브랜치를 생성합니다.

 

수정카운트 (optional)

  • 상태코드 뒤에 증가

 

버전 표기 시나리오

# 프로젝트 시작
v0.1.0-alpha (iteration 1 종료)
v0.1.0-alpha2 (iteration 2 종료)
v0.1.0-alpha3 (iteration 3 종료)

# 베타 테스트 시작
v0.1.0-beta (latest alpha)
v0.1.0-beta2 (bug fix)

# 배포전 버전 검증 시작
v0.1.0-rc (latest beta)
v0.1.0-rc2

# 배포
v0.1.0

 

참고 문헌 : https://gist.github.com/foundy/7588518cb453425e0337bff4e74bdecf