Discourse 3.2부터: 활성 개발 중인 베타 버전의 -dev 접두사 추가

tests-passed 브랜치에서 3.2.0.beta1-dev 버전부터, Discourse 코어 버전 번호에는 최종 ‘릴리스’ 버전이 아님을 나타내기 위해 -dev 접미사가 포함됩니다. 이 접미사는 UI에 표시되지 않으므로, 대부분의 사용자에게는 아무런 영향을 미치지 않는 기술적 사항입니다.

기술적 세부 사항은 아래를 참고하세요:


Discourse 3.1 이하의 베타 시리즈에서는, 베타를 '릴리스’한 후 다음 베타 릴리스까지 tests-passed의 버전 번호를 그대로 유지하는 전략을 사용했습니다. 이 방식은 몇 가지 문제를 초래했습니다.

  1. 특정 버전을 지정할 때, 3.1.0.beta2와 같은 버전은 수백 개의 가능한 시점을 가리킬 수 있었습니다. 이는 특히 .discourse-compatibility 파일을 통해 호환성을 정확히 정의하려고 할 때 문제가 되었습니다.

  2. 메이저 버전 이후에는, tests-passed에서 개발을 계속하기 위해 다음 버전의 beta1을 즉시 '릴리스’해야 했습니다. 이것이 중복된 beta1 릴리스가 발생한 이유입니다.

이 상황을 개선하기 위해, 이제 베타 릴리스 개발 과정에서 버전 번호에 -dev를 붙이기로 했습니다. 예를 들어, 3.2 개발 사이클은 3.2.0.beta1-dev로 시작합니다. 릴리스가 준비되면 3.2.0.beta1로 스탬프가 찍히고, 즉시 3.2.0.beta2-dev 개발을 시작하는 또 다른 커밋을 따르게 됩니다.

앞으로, '메이저 릴리스’는 다음과 같은 형태가 될 예정입니다:

    %%{init: { 'logLevel': 'debug', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchOrder': 2}} }%%
    gitGraph
       branch stable order: 1
       commit tag: "v3.1.8"
       checkout main
       commit id: "bump to v3.2.0.beta17" tag: "v3.2.0.beta17" type: HIGHLIGHT
       commit id: "bump to v3.2.0.beta18-dev"
       commit
       commit id: "bump to v3.2.0.beta18" tag: "v3.2.0.beta18" type: HIGHLIGHT
       checkout stable
       merge main id: "merge"
       commit id: "bump to v3.2.0" type: HIGHLIGHT tag: "v3.2.0"
       checkout main
       commit id: "bump to v3.3.0.beta1-dev"

'마이너 릴리스’는 다음과 같은 형태가 될 것입니다:

    %%{init: { 'logLevel': 'debug', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchOrder': 2}} }%%
    gitGraph
       branch stable order: 1
       commit tag: "v3.1.1"
       checkout main
       commit id: "bump to v3.2.0.beta2-dev"
       commit id: "... development of beta2 ..."
       commit id: "bump to v3.2.0.beta2" tag: "v3.2.0.beta2" type: HIGHLIGHT
       checkout stable
       commit id: "backports"
       commit id: "bump to v3.1.2" type: HIGHLIGHT tag: "v3.1.2"
       checkout main
       commit id: "bump to v3.2.0.beta3-dev"

(이 다이어그램에서 main과 tests-passed는 동등하다고 볼 수 있습니다)

이러한 프로세스는 version_bump.rake에서 찾을 수 있는 몇 가지 rake 태스크로 코드화되었습니다.

31개의 좋아요

/admin 페이지에서는 표시됩니다… 하지만 이 주제를 발견하면서 마음이 놓였습니다.

1개의 좋아요

버전 번호 매기기조차 이렇게 복잡한데(지정하는 것도, 나 같은 사용자가 이해하는 것도), 소프트웨어 개발은 얼마나 복잡할지 상상도 안 됩니다!!!

베타, 안정판, 개발판, 테스트 통과, 백포팅 등에 대해 15분 정도를 보낸 끝에 결국 포기했습니다.

도대체 무슨 일이죠! 제 웹사이트에는 그냥 'Dev’라고 표시해 두겠습니다!!