Skip to content
This repository has been archived by the owner on Apr 3, 2023. It is now read-only.

Versioning & Update Process

Ha Jeong-Hyun edited this page Aug 26, 2022 · 3 revisions

Versioning

CloudModular는 버전을 스탠다드하게 Major.Minor.Patch 단위로 책정합니다.

Server와 Web 둘다 동일한 Version으로 진행됩니다.

  • Major: 상당 부분이 바뀔 경우 Major 번호에 카운터가 들어갑니다. 현재 CloudModular의 Major Number는 0으로 아직 정식 버전이 아닌 테스트 버전 입니다. 1버전 릴리즈 날짜를 10월 중으로 잡고 있으며, 1버전 릴리즈 이후 Major 버전이 바뀌는 경우는 거의 없을 것으로 예상 됩니다.
  • Minor: 최소 2가지 이상의 기능의 변경/추가/삭제가 됩니다. 자주 사용되는 API가 추가되며, System Level에서 상당히 큰 변화가 일어나도 카운터가 올라갑니다. 여기까지가 Alpha, Beta를 거친 다음 Release가 됩니다. 업데이트 주가는 1개월 ~ 3개월 사이, 또는 그 이상이 될 수 있습니다.
  • Patch: 일부 버그가 해결되었을 경우 올라갑니다. 또한 적은 갯수의 소규모 기능이 수정되거나 추가되면 Minor가 이닌 Patch에서 카운터가 올라갑니다. Alpha, Beta를 거치지 않습니다. 업데이트 주기는 해당 패치 버전의 프로젝트 시작을 기준으로 1주일을 넘기지 않습니다.

Update Process

업데이트 대상 리스트는 Issue와 Project에서 관리됩니다. 피드백에서 업데이트 까지의 과정은 아래와 같습니다.

  1. Issue에 피드백이 올라간다.

image

  1. 각각 Issue에 버전 마일스톤을 설정하고 프로젝트에 추가한다.

image

  1. 프로젝트에서 작업해야 할 리스트를 파악한 후 구현을 시작한다.

image

  1. 이때 구현의 Branch는 상황에 따라 다른데, Minor 또는 Major 단위일 경우, develop에서 각 기능에 따라 feat branch를 따로 나누어서 구현한 다음 마지막에 develop으로 merge를 진행하고, Patch일 경우 main에서 hotfixes branch를 생성해서 구현한다.

  2. 목표치에 도달했다면 Server와 Web을 결합하는 Release 테스트를 진행합니다. release branch를 따로 만들어서 업데이트로 만들어진 Docker Container가 제대로 작동할 때 까지 Test를 진행한다.

  • 이때 branch명을 release/{version}으로 설정합니다. Dockerfile은 main이 아닌 release branch의 repository를 다운받아서 빌드합니다.
    image
  1. 모든 테스트가 완료되었으면 mainreleasedevelop 또는 hotfixesmerge하고 merge된 branch를 main으로 merge합니다. 이때 모든 merge는 PR로 진행한다.

image