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
'소프트웨어 개발자 > SW 개발론' 카테고리의 다른 글
[SW 개발] 의존성 주입 (DI, Dependency Injection) (1) | 2024.07.06 |
---|---|
[클린코드] SOLID 객체 지향 설계 원칙 (0) | 2022.09.12 |
[SW 개발] 테스트 중심의 개발 TDD (with. Unit, E2E, Integration) (0) | 2022.08.25 |
[SW 개발] MSA vs 모놀리식 (0) | 2022.08.24 |
[SW 개발] Agile, Scrum, Sprint, Waterfall (0) | 2022.08.22 |