Ежемесячный выпуск за июль 2026 года

Для получения дополнительной информации обо всех изменениях, выпущенных в версии 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"

  ## Установите db_shared_buffers максимум на 25% от общей памяти.
  ## будет установлено автоматически при начальной настройке на основе обнаруженной оперативной памяти, или вы можете переопределить
  db_shared_buffers: "2048MB"

  ## может улучшить производительность сортировки, но увеличивает использование памяти на соединение
  db_work_mem: "40MB"

  ## Уменьшить максимальный размер загрузки
  upload_size: 1m

  ## Какую ревизию Git должен использовать этот контейнер? (по умолчанию: 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 всё ещё поддерживается, и вы можете зафиксировать установку на этой версии, установив version: release/2026.1 в файле app.yml. В этом случае повторная сборка включила бы обновление безопасности из ветки 2026.1.

Предполагаю, вы использовали version: esr? В этом случае вы отслеживаете «последнюю версию ESR», которая сейчас является 2026.7.

Информацию о периодах поддержки и перекрытиях между периодами поддержки ESR можно найти на https://releases.discourse.org/

К сожалению, откатить Discourse на более раннюю версию невозможно. Но чтобы избежать этого в будущем, вы можете зафиксировать версию на release/2026.7 (и обязательно вручную обновлять эту фиксацию до того, как поддержка 2026.7 прекратится).

1 лайк

Спасибо. Думаю, я ищу самый надёжный и автоматизированный способ гарантированно остаться на самой старой поддерживаемой версии, то есть выбрать самый медленный путь развития.

1 лайк

У меня то же самое, и я думаю, что esr (почти) это делает. Каждые несколько месяцев появляется новый esr, и вы переходите на него, что и произошло только что. Но на самом деле у старого esr еще два месяца поддерживаемого срока службы, поэтому вы ожидали остаться на предыдущем esr. (Я думаю, что это разумное желание. Нам нужна метка esr-maintained??)

1 лайк