tests-passed 브랜치에서 3.2.0.beta1-dev 버전부터, Discourse 코어 버전 번호에는 최종 ‘릴리스’ 버전이 아님을 나타내기 위해 -dev 접미사가 포함됩니다. 이 접미사는 UI에 표시되지 않으므로, 대부분의 사용자에게는 아무런 영향을 미치지 않는 기술적 사항입니다.
기술적 세부 사항은 아래를 참고하세요:
Discourse 3.1 이하의 베타 시리즈에서는, 베타를 '릴리스’한 후 다음 베타 릴리스까지 tests-passed의 버전 번호를 그대로 유지하는 전략을 사용했습니다. 이 방식은 몇 가지 문제를 초래했습니다.
-
특정 버전을 지정할 때,
3.1.0.beta2와 같은 버전은 수백 개의 가능한 시점을 가리킬 수 있었습니다. 이는 특히.discourse-compatibility파일을 통해 호환성을 정확히 정의하려고 할 때 문제가 되었습니다. -
메이저 버전 이후에는, 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 태스크로 코드화되었습니다.