Для получения дополнительной информации обо всех изменениях, выпущенных в версии 2026.7, ознакомьтесь со следующим:
Также были выпущены патч-релизы для других поддерживаемых версий:
Для получения дополнительной информации обо всех изменениях, выпущенных в версии 2026.7, ознакомьтесь со следующим:
Также были выпущены патч-релизы для других поддерживаемых версий:
Станет ли это текущей версией «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://'
Да, именно так!
Это новая версия ESR, поэтому при обновлении вы перешли на неё.
Не могли бы вы в будущем как-то сделать это менее запутанным? Возможно, дело только во мне, но если обновление применяется к ветке ESR, на которой я сейчас нахожусь, я предполагаю, что это происходит потому, что текущая мажорная версия этой ветки всё ещё поддерживается.
Версия 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 прекратится).
Спасибо. Думаю, я ищу самый надёжный и автоматизированный способ гарантированно остаться на самой старой поддерживаемой версии, то есть выбрать самый медленный путь развития.
У меня то же самое, и я думаю, что esr (почти) это делает. Каждые несколько месяцев появляется новый esr, и вы переходите на него, что и произошло только что. Но на самом деле у старого esr еще два месяца поддерживаемого срока службы, поэтому вы ожидали остаться на предыдущем esr. (Я думаю, что это разумное желание. Нам нужна метка esr-maintained??)
Я думаю, это вполне разумно рассмотреть, но также подумайте об этом… что изменится через 2 месяца, когда поддержка v2026.1 прекратится?
Без дополнительных изменений вы всё равно будете обновлены в тот момент «без предупреждения».
Вас это устраивает?
Да, я думаю, что всё ещё имеет смысл дольше придерживаться старой ESR-версии. Это означает, что новая ESR-версия уже прошла некоторое тестирование и, возможно, содержит ряд исправлений.
Я обновился до новой ESR-версии в течение часа и немного жалею об этом: в нынешних условиях мне лучше было бы зафиксироваться на предыдущей версии и получать только обновления безопасности. Это разделяет срочные исправления безопасности и необходимость разбираться в новых изменениях, а также потенциальные новые ошибки, которые будут исправлены в ближайшее время. См. очень полезную статью
Переход с 2026.1 ESR на 2026.7 — мои наблюдения
(Почему стоит ожидать новых ошибок в только что выпущенной ESR-версии? Потому что, насколько я могу судить, новая ESR-версия находилась в непрерывной разработке вплоть до момента выпуска. Стабилизационного этапа не было.)
Вот это главный вопрос.
Итак, если я использую ветку esr-maintained, то через два месяца ветки esr и esr-maintained станут одинаковыми, верно? Так что через 2 месяца я всё равно буду удивлён крупными изменениями.
Пока ветки esr и esr-maintained различаются, Discourse может выводить предупреждение о том, что вы находитесь в «периоде льготной поддержки ESR». Это предупреждение можно показывать только на форуме для администраторов, а не при пересборке контейнера.
Было бы неплохо получать заблаговременное уведомление о смене версии ESR, чтобы можно было спланировать и протестировать обновление в течение этого периода поддержки.
В идеальном мире это даёт вам два месяца на обновление тестового сервера до новой ESR, в то время как на продуктивном сервере вы можете продолжать использовать старую ESR с обновлениями безопасности, покрывающими этот период.
Действительно, имеет смысл иметь какой-то простой механизм отслеживания меток, чтобы следить за исправленной старой ESR и автоматически получать поддерживаемые обновления старой ESR.
Возможно, уже есть способ достичь этого?
Не думаю, что ветка ESR будет получать такое большое количество исправлений ошибок. Как и версия 2026.1 — с этого момента она будет получать только обновления безопасности.
Так что, хотя через месяц некоторые из этих ошибок могут стать известными, это не значит, что вам не придётся с ними разбираться.
Если взглянуть на ситуацию пессимистично, то посмотрим! Я полагаю, что если бы в свежеиспечённом ESR-релизе были обнаружены какие-то глупые изменения, ломающие совместимость, их бы поправили. Возможно, этот новый подход ещё не достаточно долго применяется, чтобы увидеть, как это происходит. Действительно, я не ожидаю исправлений для простых неудобств.