Docker 컨테이너 내에서 Discourse를 실행하고 있으며, 상당히 표준적인 배포 방식입니다.
웹 브라우저에서 업그레이드를 할 수 있다는 점이 마음에 듭니다. 그런데 ‘stable’ 릴리스에만 구독하고, 아래와 같은 업그레이드 알림을 받지 않는 방법이 있는지 궁금합니다:
2.5.0.beta7
아마도 베타 릴리스가 완료될 때까지 기다렸다가 2.5.1이 출시되면 그때 업그레이드할 수 있도록 해 주시면 좋겠습니다.
app.yml 파일을 편집하여 안정 버전 브랜치(stable)를 지정할 수 있습니다. 편집하려는 줄은 version이며, 기본값은 version: tests-passed입니다.
이 경우 업데이트를 받기까지 수개월을 기다려야 하며, 그만큼 해당 버전의 버그를 더 오래 견뎌야 한다는 점을 유념하세요.
새로운 주요 안정 버전(예: 2.5.0)이 릴리스된 후에만 베타/테스트 통과 버전에서 안정 버전으로 전환할 수 있다는 점에 유의하세요. 현재 테스트 통과 버전에서 안정 버전으로 전환하는 것은 다운그레이드에 해당하며, 이는 지원되지 않습니다.
만약 치명적인 문제라면 수정 사항을 백포트하지 않나요? 치명적인 문제라면 수정이 이루어질 것이라고 기대했습니다. 그렇지 않나요?
또한 베타 채널에서 여러 버그가 도입된 적이 있습니다. 따라서 새로운 릴리스를 출시할 때, 2.5.1로 넘어가기 전에 모든 것이 정상적으로 작동하는지 확인하는 sanity check를 수행한다고 가정하고 있습니다.
@RGJ, 정보 감사합니다. 다음 Discourse 버전이 출시되면 자세히 살펴보겠습니다.
보안 관련 수정 사항은 일반적으로 백포트됩니다. 네, 그렇습니다. 치명적인 버그(예: 서비스 중단, Discourse 사용 불가)도 백포트됩니다. 하지만 덜 중요한 버그는 백포트되지 않을 수 있습니다. 백포트 자체에는 리스크가 따르며, 의도하지 않은 회귀 문제가 항상 발생할 수 있고, 안정 버전(stable)을 사용하는 사용자에게 업데이트를 강제하는 등의 문제가 생길 수 있기 때문입니다.
일반적인 권장 사항은 사이트가 테스트 통과(tests-passed) 브랜치를 따르라는 것입니다(기본값이기도 합니다). 새로운 릴리스(베타)가 나올 때 업데이트하세요. 특정 경우에는 안정 버전 사용을 권장할 수 있습니다. 예를 들어 코어 템플릿을 오버라이드하는 복잡한 플러그인을 사용하는 사이트 등이 해당됩니다. 하지만 표준적인 Docker 설치 사이트의 경우 tests-passed 브랜치를 유지하는 것이 좋습니다. 소프트웨어 업계에서 "베타"라는 용어는 "버그가 있을 것"이라는 인상을 주지만, 이것이 우리가 의도하는 용법은 아닙니다. Discourse의 모든 릴리스, 즉 tests-passed, 베타, 안정 버전 등에는 모두 버그가 있습니다.
tests-passed에서 버그를 발견하고 보고하면, 며칠 이내에 수정될 가능성이 높으며, 업데이트를 통해 버그를 해결할 수 있습니다. 더 많은(고유한) 버그에 부딪힐 수는 있지만, 빠르게 수정됩니다. Kris가 언급했듯이 안정 버전에서는 4~6개월에 걸친 릴리스 기간 동안 새로운 버그를 볼 일은 없지만, 이미 존재하는 버그는 다음 안정 버전이 나올 때까지 사라지지 않습니다. 버그가 패치되지 않기 때문에 특정 시점에 tests-passed보다 더 많은 버그를 겪을 수 있지만, 버그 자체는 일정하게 유지될 것입니다.
대부분의 사이트가 tests-passed를 실행하고 있는 것으로 보이며, 이는 좋은 이유에서입니다. 팀이 제품을 적극적으로 개발하고 있으며, 여기서 가장 신속하게 대응할 수 있기 때문입니다.
문제를 겪고 있다면, Stable로 되돌리기보다는 릴리스 프로세스를 검토하는 것이 좋습니다.
통합 또는 스테이징 환경은 라이브 환경에 배포하기 전에 업데이트를 능동적으로 테스트할 수 있게 해 주며, 이를 통해 최신 트렌드를 수 주에서 수 달까지 뒤처지지 않을 수 있습니다.
인기 있는 Pavilion 플러그인들(TLP, CW, QnA, Events, Follow, Ratings, Locations 등)의 경우, 현재 tests-passed 브랜드를 추적하고 있습니다. 이는 기본적으로 tests-passed가 기본 설치 대상이므로, 일반 사용자들에게 혼란을 줄 수 있는 상황을 피하기 위한 것입니다. 이로 인해 현재 대부분의 경우 이 플러그인들은 Stable 브랜치와 호환되지 않습니다. 이는 주로 Discourse 코어의 개발 속도가 매우 빠르고 빠르게 진화하기 때문입니다.
리소스가 허락할 경우 추가 브랜치를 지원하거나, Discourse가 기본 설치용 브랜치를 다른 것으로 변경할 경우를 대비해 이 정책을 계속 검토할 것입니다. 따라서 당분간 저희 플러그인을 사용하실 계획이라면 tests-passed 브랜치를 사용하시길 바랍니다.