2026.1 ESRから2026.7へのアップグレード:私の発見

まず初めに、Discourse チームの新しい ESR(Extended Support Release)のリリースおめでとうございます。それに伴うご尽力にも感謝いたします。1つのサポート対象チェックポイントに6ヶ月分のリリースがまとめられるのは、非常に大きなエンジニアリングの成果です。また、今では適切なリリースサイトと変更履歴が用意されており、これにより調査が過去4年間よりもずっと容易になりました。

私は現在 2026.1.5 ESR を使用しています。アップグレードができるだけスムーズに進むよう、リリースを一つずつ試してきました。

実際に手を加える前に、2026.1.5 から 2026.7.0 の間の変更をすべて調べました。これらのメモは、現在 2026.1 を使用しており、「今すぐパッチを当てるべきか、それとも今すぐジャンプすべきか?」と迷っている他の人々にも役立つと考えました。

私は本日、セキュリティ修正のため 2026.1.6 にパッチ適用しました。そして、来月の最初の週に、テーマコンポーネントやその他のものを十分にテストする時間ができる頃に 2026.7.0 へ移行する予定です。


version: stable の落とし穴!

もし、私の場合のように app.yml に以下が記述されている場合:

  version: stable

…すると、次のビルド時に意図の有無にかかわらず 2026.7.0 へ移行してしまいます。stableesr に対する後方互換エイリアスであり、esr は常に最新の ESR を指します。これが本日変更されました。

私が知る限り、ダウングレードのパスは存在しません。つまり、セキュリティ修正を取得するために単に再構築しただけでも、6ヶ月分の大きなジャンプを伴うことになります!

2026.1 に留まり、セキュリティパッチのみを取得するには、明示的にピン留めしてください:

  version: release/2026.1

新しい ESR へ移行し、かつ6ヶ月後に自動的に移動されないようにするには:

  version: release/2026.7

2026.1 のサポートは 2026年9月までです。 2026.7 は 2027年3月まで稼働します。つまり、ジャンプは避けられず、それがいつ発生するか(あなたのスケジュールに合わせて行うか)の問題だけです。


前提条件

PostgreSQL 15 が最小要件となりました。 コンテナ内で以下を実行して確認してください:

cat /shared/postgres_data/PG_VERSION

私の場合は 15 と返ってきたため、問題ありません。13 または 14 を使用している場合、バージョンジャンプに別途アップグレードが必要だと考えられます。

注:コンテナイメージには現在 PG 18 が 15 と共に同梱されていますが、私は変数を一つずつ処理する方針のため、当面は採用を見合わせています。


ダウンタイムは?


まずバックアップを取り、メンテナンスモードでフォーラムをロックしてください。

ダウンタイムはありませんが、成熟したフォーラムでは即座に完了するわけではありません:

私の VPS では再構築に 5 分未満かかりました。一般的なウェブホスティングでは約 10 分を想定してください。ただし、フォーラムの投稿数にも大きく依存するため、30〜45 分のウィンドウを計画してください。


セキュリティ:2026.1.5 で曝露している内容

2026.1.5 を使用している場合、17 のセキュリティ勧告が適用されます。6月30日以前に公開されたものは、あなたのビルドですでに修正済みです。これら 17 件は 2026.1.6 および 2026.7.0 の両方で修正されており、これが「まずパッチを当てる」アプローチを現実的な選択肢にしています。

  • 重大 1 件 - カラースキームのCookieを介したキャッシュポイズニング/XSS
  • 高 2 件 - 不正な HEIF ファイルを介した RCE(遠隔コード実行);リッチテキストエディタでエスケープされていないチャットトランスクリプトのユーザー名を介した保存型 XSS
  • 中 13 件、低 1 件 - レビューキュー、スタッフアクションログ、投稿アクション、ローカル日付における保存型 XSS;非表示タグ名とタグ説明の漏洩;正規化されたURLを介した制限付きトピックタイトルの露出;共有ドラフトのタイトル/抜粋の漏洩;大文字小文字を区別する比較を介した onebox ドメインブロックリストのバイパス;AIボット会話の盗聴;AIレビュー可能アイテムを介した PM(プライベートメッセージ)コンテンツへのアクセス;チャット onebox のチャンネル/スレッド ID の不一致;Q&A JSON-LD で出力される非表示の最初の投稿の抜粋

パッチのみを適用する場合、release/2026.1 を指定して再構築することで、これらすべてを閉じます。


私の気にしすぎ:あなたが要求しなくても変更されるもの

ここ数年、このセクションが最も欲しかったです。2026.7 へのジャンプに伴い、以下の変更が自動的に適用されます:

  1. Discourse Reactions(リアクション)がすべてのサイトに対してデフォルトで有効になります。 ロールアウトは7月21日に stable に到達しました。現在リアクションを使用していない場合、それが到来します。

  2. 「未分類(Uncategorized)」カテゴリが削除されます。 管理者設定の3つ(allow_uncategorized_topicssuppress_uncategorized_badgeuncategorized_category_id)が非表示になり、変更が恒久的になると完全に削除されます。現在はオプトアウトとして管理されています。

  3. rich_editor サイト設定が削除されました。 リッチエディタは現在無条件で有効です。マークダウンとリッチテキストの選択は、ユーザー固有の composition_mode 設定のみが残されています。マークダウンプレビューのトグルも削除されました - MD/RTE モードのトグルがこれを置き換えます。

  4. よりシンプルなメール件名。 現在ベータ版です。注意:これを有効にすると email_subject サイト設定が上書きされ、無効にするとデフォルトに戻ります。つまり、そこで設定していたカスタマイズが失われる可能性があります。トグルする前にその設定を確認してください。

  5. Horizon の高コンテキストトピックカード は6月に stable に到達しました。Horizon を使用している場合にのみ関連し、シンプルカードに戻るためのテーマ設定があります。

朗報:これらすべては現在「今後の変更(Upcoming Changes)」システムを通じて適用されるため、2026.1.5 には含まれていません。設定ページ、事前通知、変更ごとのオプトアウト、およびあなたがすでにカスタマイズした設定をロールアウトが上書きしないようにする修正(#39279)が提供されます。

私のように、リリース間で設定が移動することに frustration(苛立ち)を感じていた場合、そのシステムが答えであり、2026.1 に留まることで、そのシステムが導入される前のビルドを使用し続けることができます。ジャンプ後に行う最初のことは、「今後の変更」をすべて確認し、何かが自動的に適用される前に、保留中のアイテムを慎重に設定することです。


カスタムテーマまたはコンポーネントを使用している場合

ここがテスト時間を費やすと予想される場所であり、本日ジャンプしない理由の一部です:

  • 保留中の非推奨設定に対する管理者警告がすべてのサイトで有効になりました。 レガシーなものを使用している場合、カスタムコンポーネントが管理者通知を表示し始めるでしょう。知っておくのは良いことですが、レビューが必要です。
  • .hbs および .js.es6 ファイル拡張子の新しい非推奨指定。 コンポーネントのファイル命名を確認してください。
  • レガシーウィジェットシムの削除、および discourse.breadcrumbs.*add-flag-propertyadd-header-panelbootbox の非推奨パスの削除。
  • プラグレットアウトレットはエイリアス化および非推奨化できるようになり、サイレントに壊れることはなくなりました。真に良い変更です。名前が変更されたアウトレットは、単に消えるのではなく警告を出します。
  • テーマ設定が JS バンドルからプリロードデータへ移動し、起動時に利用可能になるタイミングが変更されました。コンポーネントが早期に設定を読み取る場合は、確認する価値があります。
  • レガシーモバイルモードのサイト設定が削除され、空のコアモバイル/デスクトップスタイルシートが削除されました。CSS でモバイルとデスクトップを別々にターゲットにしている場合、アップグレード後には実際のスマートフォンでテストしてください。
  • 裏側では:Ember 6.6 → 6.10、ember-cli 6.9 → 7.0.1、Rolldown 移行の完了、テーマおよびプラグインの TypeScript サポートの追加、jQuery の大幅な削除など。

House Ads(ハウス広告)ユーザー: インライン JS がハウス広告でブロックされ、管理者 UI が FormKit で再構築されました。house_ads_after_nth_root も、ネストされた返信ビューで現在尊重されます。


注目すべき新機能

この6ヶ月間で 37 の機能が強調されました。一般的なコミュニティフォーラムにとって最も重要だと考えるものは:

  1. 今後の変更(Upcoming Changes) - 上記の構成ページとロールアウトシステム。
  2. ネストされた返信 - トピックおよびカテゴリごとに構成可能な、実験的なスレッド/ツリー形式のトピックビュー。トピックリストからの一括有効化と、再設計されたモバイル体験。
  3. ワンタイムメールコードによるログインとサインアップenable_local_logins_via_code) - パスワードレス、現在アルファ版。サインアップにはメールとコードのみが必要です。
  4. 新しい管理者カテゴリ管理ページ および簡素化されたカテゴリ作成。カテゴリとそのタイプの完全なディレクトリ。
  5. 広範囲な一括アクション - 一括タグ管理(追加/削除/置換)、一括ピン/アンピン、未アクティベートユーザーの一括一時停止。さらに、管理者 → ユーザー に新しいアクティベーションステータスフィルターが追加されました。最後の組み合わせは、スパム登録の波をクリーンアップするのに優れています。

他にも注目すべき点として:明示的なデフォルトホームページ設定、一括カスタム絵文字インポート/エクスポート付きのピン留め絵文字グループ、タグ名にドットが許可されるようになったこと、専用のタグ編集ページ、埋め込み用のフルアプリモード、OAuth2 および OpenID Connect のグループ同期、インライン GitHub onebox 上のライブ PR ステータスアイコンなどがあります。


なぜ最初にパッチを当てたか

上記のいずれも、2026.7 へ移行しない理由にはなりません。「今後の変更」システムだけでもそれをやる価値があり、来月の最初の週または第二週に移行する予定です。

しかし、セキュリティ修正は両方のブランチで利用可能だったため、緊急の部分をテストが必要な部分と切り離すことができました。例えば、リッチエディタが現在無条件で有効になっていることです。フォーラム周辺を読み回せば、迅速な解決策が見つかることを願っています。

本日のパッチ適用で、すべてのセキュリティ勧告を閉じました。これにより、ジャンプは適切なウィンドウで行え、「今後の変更」 を慎重に確認し、重大な CVE に追われることなく、デスクトップとモバイルのテーマコンポーネントをチェックできます。

今週時間が限られている 2026.1 ユーザーの方は、同様にすることをお勧めします。時間がある場合は、release/2026.7 に直接進み、明示的にピン留めし、Postgres のバージョンを確認してください。

チームに再度感謝します。変更履歴サイトにより、この調査は1年前よりもずっと痛みが少なくなりました。


免責事項:この投稿の構成を手伝うために AI を使用しました。そうでなければ、この投稿をする時間はありませんでした。追加、削除、または変更が必要な点があれば、指摘してください。

デフォルトで有効化されています(新しいフォーラムだけでなく、既存のものも対象)が、アップデート後に discourse_reactions_enabled サイト設定を使用して無効化することは依然として可能です。オプトアウト(不参加)を選択することもできます。

これが機能するかどうかは、2つの理由から確信が持てません。ESR(Extended Stable Release)を使用している場合、次の ESR リリースが行われるまでにすべての段階を通過する「今後の変更」を見逃してしまうことになると思います。 Simplified category setup がその一例です。毎月アップデートを行うユーザーはこれを試してフィードバックを提供する機会がありましたが、ESR ユーザーは他のコード変更と同様に、結果のみを受け取る形になり、「今後の変更」としての試行の機会がありません。
また、変更がベータ版に昇格して自動的に有効化された後にオプトイン(参加)するか、オプトアウトするかは選択できますが、自動的に有効化される前にオプトアウトすることはできません。

もちろん、今後何が来るのか把握するためにアルファ版の変更を確認しておくのは理にかなっています。管理者としてユーザーに影響を与えずに機能をテストすることはすでに可能で、有効化されたアップデートを行った後に迅速にオプトアウトすることもできます。しかし、ESR を使用しているため、今後の変更を昇格させるようなアップデートは行われません。より新しいバージョンへのアップデートが行われるまで、あなたの場合には何も自動的に適用されませんが、これはつまり、変更が恒久的になる前に試す機会を逃したり、現在の状態を試すことはできても、さらに進んだイテレーションで起こる改善を試すことができないことを意味します。

@Moin、本当に感謝しています! それもあって、ESRの投稿には約1週間ほど間を空けてから返信しています。私が間違っている点などへのフィードバックや修正は、自分で考えて出すものよりもずっと有益です。投稿を更新します。ありがとうございます!