프로덕션 사이트를 깨지 않는 가장 안전하고 좋은 브랜치는 무엇인가요?

어리석은 질문일 수도 있지만, 답변을 찾지 못했습니다: 안전한 업데이트를 위해 기본 브랜치는 무엇이어야 하나요? main 브랜치의 문제로 인해 예상치 못한 실패가 발생하여 프로덕션 서버가 깨지는 것은 원하지 않습니다. 단순히 최신 태그, 예를 들어 현재 v3.2.0을 따르는 것이 좋을까요?

안녕하세요, @CGenie :slight_smile:

대부분의 사용자는 기본적으로 tests-passed 브랜치를 사용하지만, 일부는 beta 또는 stable 브랜치를 사용합니다. 각 브랜치의 차이점에 대한 자세한 내용은 https://meta.discourse.org/t/configure-a-supported-tracking-branch-to-get-discourse-software-updates/17014에서 확인하실 수 있습니다.

Understanding Discourse release channels 에서도 차이를 설명합니다.

개인적 의견으로는 stable을 추천합니다. 주요 코드를 크게 변경하지 않으면서도 작은 버그 수정과 보안 패치를 제공하므로, 패치를 적용하면서 업그레이드할 때 일반적으로 호환성이 더 좋습니다.

단점으로는, 예를 들어 3.3.0(미래)과 같은 마이너 버전 업데이트 시 더 큰 변화가 발생할 수 있으며, 이를 점진적으로 적용하는 대신 한꺼번에 처리해야 할 수 있습니다. 이는 이전 마이너 버전을 기준으로 개발되었지만 새로운 3.3.x 시리즈의 베타 릴리스에서 테스트되지 않은 커스터마이징(예: 전용 플러그인)에 특히 영향을 미칠 수 있습니다.

종합하자면, 최신 기능의 일부 누락이 괜찮다면 stable을 선택하는 것이 좋습니다.

다만 tests-passed 상태에서도 업데이트는 스스로 통제할 수 있으며, 새 기능을 확인해 볼 시간이 될 때까지 유예할 수 있습니다(필요할 경우 스테이징 사이트에서 확인하는 것도 가능하지요).

음, 또 한 가지 어리석은 질문이 있습니다: 저는 discourse_docker를 사용하여 서버를 배포하고 있습니다. discourse가 main 브랜치로 설정되어 있는 것 같습니다. tests-passed로 변경하는 방법은 무엇인가요?

아, 알겠습니다. containers/app.yml의 version은 기본적으로 tests-passed로 설정되어 있네요. 그렇다면 안정성과 새로운 기능 사이의 균형 잡힌 설정이라고 볼 수 있겠네요?

전적으로 동의합니다. 이것은 대규모 포럼을 자체 호스팅으로 운영해 온 수년간의 경험에 기반한 것입니다. 베타판이나 테스트를 통과한 버전은 더 빠르게 수정과 새로운 기능을 제공하지만, 안정판은 예측 가능합니다.

주요 변경 사항(버전 업그레이드)이 언제 발생하는지 알 수 있으며, 버전 간에는 변경 사항이 미미하다는 것을 알 수 있습니다. 이를 통해 자원을 계획하고, 필요한 테스트 작업을 준비하며, 커스터마이징(사용자 정의 테마 등)이 깨질 가능성을 대비할 수 있습니다.