安定版リリースチャンネル

私は Docker コンテナ内で Discourse を実行しています。これは非常に標準的なデプロイ方法です。

Web ブラウザからアップグレードできる点は気に入っていますが、「安定版」リリースにのみ購読し、以下のようなベータ版のアップグレード通知を受け取らない方法はないかと考えています。

2.5.0.beta7

ベータリリースが完了するまで待機し、2.5.1 がリリースされた時点でアップグレードできるようにすることは可能でしょうか?

app.yml ファイルを編集して、安定版ブランチ(stable)を指すように設定できます。編集する行は version で、デフォルト値は version: tests-passed です。

ただし、この設定にすると更新まで数ヶ月待つことになり、そのバージョンに含まれるバグにもより長く対処し続ける必要がある点にご注意ください。

ベータ版またはテスト通過版から安定版への切り替えは、新しいメジャーな安定版(例:2.5.0)がリリースされた場合にのみ可能です。現在、テスト通過版から安定版へ切り替えるとダウングレードとなり、これはサポート対象外です。

もし致命的な問題であれば、修正をバックポートしないのでしょうか?致命的な問題が発生した場合は修正されると予想しますが、そうではないのでしょうか?

また、ベータチャンネルでは何度もバグが導入された経験があります。そのため、新しいリリースを切り出す際には、2.5.1 へ移行する前にすべての機能が正常に動作し、期待通りに動作するよう、何らかの健全性チェックを行っているという前提を持っています。

@RGJ さん、情報ありがとうございます。次の Discourse バージョンが公開され次第、確認いたします。

セキュリティ修正は一般的にバックポートされます。クリティカル(つまり、Discourse が使用できなくなるような)なバグもバックポートされます。しかし、多くの軽微なバグはバックポートされない場合があります。バックポート自体にはリスクが伴います。意図しない回帰が発生する可能性は常にあり、安定版のユーザーに更新を強いることにもなります。

当社の一般的な推奨事項は、サイトが tests-passed ブランチ(デフォルト)に従い、新しいリリース(ベータ版)が公開された際に更新することです。複雑なプラグインがあり、コアテンプレートをオーバーライドしているサイトなど、特定のケースでは stable が推奨されることもありますが、標準的な Docker インストールサイトの場合は tests-passed に従ってください。「ベータ」という用語はソフトウェア業界では「バグがある」という意味で使われる傾向がありますが、当社の意図した使い方はそれではありません。Discourse のすべてのリリース(tests-passed、ベータ、stable など)にはバグが存在します。

tests-passed でバグを発見して報告すれば、数日以内に修正され、更新することでバグが解消される可能性が高いです。より多くの(固有の)バグに遭遇する可能性はありますが、それらは迅速に修正されます。Kris が述べたように、stable では 4〜6 ヶ月のリリース期間中に新しいバグは見られないはずですが、発生したバグは次の stable リリースまで解消されません。パッチが適用されないため、tests-passed に比べ、任意の時点でより多くのバグを抱える可能性がありますが、バグは一定に保たれます。

ほとんどのサイトが「テスト合格」で運用されているようですが、それには理由があります。チームが製品開発に積極的に取り組んでおり、そこで最も迅速に対応できるからです。

もし問題に直面している場合は、安定版(Stable)への戻りよりも、リリースプロセスの見直しをお勧めします。

統合環境やステージング環境のコピーを用意することで、本番環境に展開する前に更新内容を事前にテストでき、数週間や数ヶ月の遅れを避けることができます。

人気のある Pavilion プラグイン(TLP、CW、QnA、Events、Follow、Ratings、Locations など)については、現在は tests-passed を追跡しています。これはデフォルトのインストールとして提供されており、ユーザーにとって一般的に混乱が少ないためです。そのため、これらのプラグインは現在、安定版(stable)とは 互換性がない 場合がほとんどです。これは、Discourse コアの開発速度が非常に速く、劇的に進化していることに起因しています。

リソースが許せば追加のブランチをサポートできるよう検討を続け、Discourse がデフォルトのインストールを別のブランチで提供するようになった場合にも対応します。したがって、現時点では、当社のプラグインを使用する予定の場合は、tests-passed を使用してください。