Discourse 설치에서 v2.9.0.beta1에 멈춰 있는 오래된 문제가 있었습니다. 개인적인 사정으로 인해 수년간 이 문제를 해결하지 못했었죠. 당시에는 v2.9.0.beta2로 전환하는 것이 불가능해 보였습니다. 최근 재빌드 문제를 해결하는 과정에서 app.yml의 특정 훅(특히 태그 체크아웃을 강제하는 부분)을 다음과 같이 주석 처리했습니다:
재빌드 후 예상치 못하게 인스턴스가 3.4.0.beta4-dev로 업데이트되었습니다. 그 문제를 넘어서게 되어 기쁘지만, 이제 안정화된 3.4.x 릴리스가 나올 때까지 시스템이 3.4.0 베타 스트림을 계속 따르기를 원합니다. 그리고 안정 버전이 나오면 그 안정 버전으로 고정(lock)하여 더 이상의 베타나 개발 버전으로 자동 업그레이드되지 않도록 하려 합니다.
안정 버전이 이용 가능해지면 매번 재빌드할 때마다 되돌리거나 수동으로 개입하지 않고도 릴리스를 해당 안정 버전으로 '고정(pinning)'하거나 잠그는 올바른 방법은 무엇인가요?
아니, 불행히도 그렇지 않았습니다… 저는 100% 확신합니다. 3.4.0.beta4-dev 버전이었고, 그 후 app.yml을 변경한 다음 다시 빌드했습니다. 그런 다음 3.5.0.beta1-dev가 나타났습니다. 이것이 100% 따진 경로입니다… 명확히 하기 위해 말씀드리지만, 이에 대해 제로(0)의 의심이 있습니다. 저는 언급한 조치들을 취하기 전에 실제로 확인을 마쳤습니다.
다시 한번 도움을 주셔서 감사합니다 @pfaffman. 현재까지 제가 이해한 내용을 정리하면 다음과 같습니다:
우리의 인스턴스는 3.4.0.beta4-dev 버전으로 실행되고 있었으며, 이는 안정적(stable) 릴리스로 간주되지 않는 버전입니다.
설정을 version: stable로 업데이트했을 때(기본값은 주석 처리된 상태), 향후 재빌드 시 인스턴스가 안정적 브랜치에 고정될 것으로 예상했습니다. 그러나 이미 베타 버전을 사용 중이었기 때문에 업데이트가 계속 진행되어 3.5.0.beta1-dev 버전으로 이동했습니다.
안정 태그를 이미 넘어선 상태에서 version: stable로 전환해도 롤백이 발생하지 않는 것 같습니다. 이는 안정 버전 이하의 상태에 있을 경우 베타 버전을 추적하는 대신 안정 버전으로 고정된다는 의미일 뿐입니다.
이렇게 이해한 것이 맞나요?
또한, 향후 우연히 베타 채널을 따르지 않도록 하는 권장 프로세스가 무엇인지 명확히 해주시겠습니까? 구체적으로:
안정적 릴리스가 이용 가능할 때, 이미 안정 버전보다 앞서 있는 상태가 아니라면 재빌드가 해당 안정 릴리스에 고정되도록 보장하기 위해 version: stable을 활성 설정으로 두는 것만으로 충분한가요?
베타/개발 버전으로 업데이트되는 것을 방지하기 위해 수행해야 하는 추가 단계나 정리 작업(예: 다른 설정 요소 제거 또는 수정)이 있나요?