2026年7月度リリース

2026.7 でリリースされたすべての変更の詳細については、以下をご参照ください:

他のサポート対象バージョンのパッチリリースも公開されています:

「いいね!」 3

これで現在の「esr」リリースになりますか? それとも何か誤解していますか?

確かに、何が起きたのか理解できません。このアップデート(Cache poisoning/XSS via color scheme cookies · Advisory · discourse/discourse · GitHub により非常に緊急)には再ビルドが必要でしたが、v2026.1.5 → v2026.1.6 の変更ログがあったため、マイナーバージョンのアップグレードだと思っていました。しかし、実際には v2026.7.0 になっていました。私の知る限り、フォーラムは esr に設定されています:

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Set db_shared_buffers to a max of 25% of the total memory.
  ## will be set automatically by bootstrap based on detected RAM, or you can override
  db_shared_buffers: "2048MB"

  ## can improve sorting performance, but adds memory usage per-connection
  db_work_mem: "40MB"

  ## Reduce max upload size
  upload_size: 1m

  ## Which Git revision should this container use? (default: tests-passed)
  version: esr

また、以下のような大量のアップデート後のクエリが表示されたことにもかなり驚きました:

== 20260421061908 AddCoveringIndexOnChatMessagesThreadId: migrating ===========
-- remove_index(:chat_messages, {name: "idx_chat_messages_thread_id_id_user_id_not_deleted", algorithm: :concurrently, if_exists: true})2026-07-28 16:02:43.673 UTC [544] discourse@discourse LOG:  duration: 16903.716 ms  statement: CREATE INDEX CONCURRENTLY "index_posts_on_updated_at_for_localization" ON "posts" ("updated_at" DESC) WHERE deleted_at IS NULL AND user_id > 0 AND locale IS NOT NULL
2026-07-28 16:02:59.214 UTC [544] discourse@discourse LOG:  duration: 15529.318 ms  statement: CREATE INDEX CONCURRENTLY "index_posts_on_updated_at_for_locale_detection" ON "posts" ("updated_at" DESC) WHERE deleted_at IS NULL AND user_id > 0 AND locale IS NULL
2026-07-28 16:03:00.031 UTC [544] discourse@discourse LOG:  duration: 798.943 ms  statement: CREATE INDEX CONCURRENTLY "index_topics_on_updated_at_for_locale_detection" ON "topics" ("updated_at" DESC) WHERE deleted_at IS NULL AND user_id > 0 AND locale IS NULL
2026-07-28 16:03:00.186 UTC [544] discourse@discourse LOG:  duration: 143.500 ms  statement: CREATE INDEX CONCURRENTLY "index_topics_on_updated_at_for_localization" ON "topics" ("updated_at" DESC) WHERE deleted_at IS NULL AND user_id > 0 AND locale IS NOT NULL
2026-07-28 16:03:01.251 UTC [544] discourse@discourse LOG:  duration: 1051.872 ms  statement: UPDATE posts
	SET raw = regexp_replace(
	  raw,
	  '\\+([_*~|`])(?=[^\]\[]*\]\(upload://)',
	  '\1',
	  'g'
	)
	WHERE id >= 1
	  AND id < 10001
	  AND raw ~ '\\+[_*~|`][^\]\[]*\]\(upload://'
	
2026-07-28 16:03:01.910 UTC [544] discourse@discourse LOG:  duration: 658.965 ms  statement: UPDATE posts
	SET raw = regexp_replace(
	  raw,
	  '\\+([_*~|`])(?=[^\]\[]*\]\(upload://)',
	  '\1',
	  'g'
	)
	WHERE id >= 10001
	  AND id < 20001
	  AND raw ~ '\\+[_*~|`][^\]\[]*\]\(upload://'
「いいね!」 2

はい、その通りです!

このリリースは新しい ESR リリースですので、アップデート時にこれに移行しました。

「いいね!」 2

今後、これをもう少し分かりやすくすることは可能でしょうか? 私だけかもしれませんが、現在使用中の ESR ブランチにアップデートが適用された場合、そのブランチの現在のメジャーバージョンがまだサポートされているからだと想定します。

「いいね!」 1

2026.1 は引き続きサポートされており、app.yml で version: release/2026.1 を設定することでインストールをそのバージョンに固定できます。その場合、再ビルドを実行すれば 2026.1 ブランチのセキュリティアップデートが適用されていたはずです。

おそらく version: esr を使用していたのでしょう。その場合、最新の ESR(Extended Support Release)バージョンを追跡することになり、現在は 2026.7 となっています。

サポート期間や ESR サポート間の重複に関する情報は、https://releases.discourse.org/ で確認できます。

残念ながら Discourse のダウングレードはできません。ただし、今後これを回避したい場合は release/2026.7 に固定し(2026.7 のサポート終了前に手動で固定値を更新するようにしてください)、アップデートを管理できます。

「いいね!」 1

ありがとうございます。おそらく、まだサポートされている最も古いバージョンに確実に留まるための、最も確実で自動化された方法、つまり開発速度が最も遅いパスを探しているのでしょう。

「いいね!」 1

こちらでも同様です。ESR(Extended Support Release)はほぼそのように動作していると思います。数ヶ月ごとに新しい ESR がリリースされ、それに移行することになります。今回もその通りでした。しかし実際には、古い ESR はあと2ヶ月間サポート期間が残っているため、前の ESR に留まることが想定されていました。(これは合理的な要望だと思います。ESR-maintained ラベルが必要でしょうか?)

「いいね!」 1