Переключение между каналами/версиями выпуска Discourse

:bookmark: В этом руководстве объясняется, как настроить канал выпуска для вашего экземпляра Discourse.

:person_raising_hand: Требуемый уровень пользователя: Системный администратор

:warning: Требуется доступ к консоли.

Управление каналом вашего экземпляра Discourse определяет частоту и тип получаемых обновлений. В этом руководстве описаны доступные каналы и приведен пошаговый подход к изменению ветки в вашей настройке.

Краткое описание

Discourse предлагает несколько каналов для отслеживания обновлений программного обеспечения: latest, release и esr. В этой документации объясняется назначение каждого из них, их ключевые особенности и способы их настройки в вашем экземпляре Discourse. Для иллюстрации каналов см. releases.discourse.org.

Поддерживаемые каналы

latest

:information_source: Рекомендуемый канал по умолчанию
Этот канал предоставляет последние исправления ошибок и обновления совместимости для плагинов. Каждый успешный коммит из ветки main тестируется сборочным сервером и добавляется в ветку latest после успешной проверки.

  • Подходит для сайтов, которые хотят быть в курсе последних обновлений.
  • Сайты могут обновляться вручную в любое время.

release

:information_source: Для сайтов, предпочитающих ежемесячные выпуски

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

  • Выпускается примерно раз в месяц.
  • Каждый выпуск получает критические исправления в течение двух полных циклов выпусков.

esr

:information_source: Расширенная поддержка выпуска (Extended Support Release)

Тег esr отслеживает последний выпуск с расширенной поддержкой, предназначенный для сайтов, которые отдают приоритет долгосрочной стабильности и безопасности, а не частым обновлениям.

  • Объявляется примерно каждые 6 месяцев на основе ежемесячных выпусков.
  • Получает исправления безопасности и критические обратные портирования в течение длительного периода.
  • Может иметь ограниченную совместимость с плагинами сообщества и компонентами тем.

:warning: Примечание: Отсутствие регулярных обновлений обслуживания может оставить некоторые функции устаревшими или визуально несовместимыми.

Устаревшие псевдонимы

Для обратной совместимости следующие старые имена веток/тегов по-прежнему работают, но считаются устаревшими:

  • tests-passedlatest
  • betarelease
  • stableesr

Другие ветки или ссылки

:warning: Отслеживание других веток (например, конкретных веток release/YYYY.M или SHA-хешей коммитов) возможно, но требует экспертизы. Эти ветки получают критические исправления только в течение ограниченного периода.

Инструкции по настройке канала

n
Выполните следующие шаги, чтобы настроить желаемую ветку в вашем экземпляре Discourse:

  1. Доступ к файлу конфигурации
    Откройте файл конфигурации app.yml, выполнив следующие команды в консоли:
cd /var/discourse
nano containers/app.yml

Редактор nano откроет файл конфигурации.
2. Редактирование отслеживаемой ветки
Найдите параметр версии, поискав слово “version” в файле:

params:  
## Какую ревизию Git должен использовать этот контейнер? (по умолчанию: latest)  
#version: latest
  • Уберите комментарий со строки version.
  • Замените latest на желаемое имя ветки или тега (например, esr). Пример:
params:  
## Какую ревизию Git должен использовать этот контейнер? (по умолчанию: latest)  
version: esr  
  1. Сохранение и выход
  • Нажмите Ctrl+O, чтобы сохранить изменения.
  • Нажмите Enter, чтобы подтвердить.
  • Используйте Ctrl+X, чтобы выйти из редактора.
  1. Пересборка контейнера
    После внесения и сохранения изменений пересоберите контейнер, чтобы применить новую конфигурацию:
./launcher rebuild app

:warning: Пересборка вызовет временный простой

27 лайков
Is it possible to upgrade Discourse up to a number of commits in the version?
How to avoid Discourse BETA version and keep only stable?
Upgrade Button - Possible Window to Exploits
Need a better way to explain what branch to be on, why, and what happens
Restoring Discourse 1.9 backup onto v2.3.0.beta9 +184
Cannot reorder categories
Download My Posts failed
Quote-feature occasionally missing on Android
What’s the best/safest branch not break production site?
How to change the target channel from DEV to BETA?
I need help to edit the sidebar
Help us test the rewritten Composer
Upcoming changes to the beta branch of Discourse
502 Bad Gateway after trying to rebuild test-passed branch
Stuck at v2.9.0.beta1 – Now Running 3.4.0.beta4-dev after Disabling Hooks: How Can I Lock to Stable Releases?
Have I Installed the wrong version? - 3.5.0.beta2-dev
Need a better way to explain what branch to be on, why, and what happens
Error 500 after Update
Landing Pages Plugin :small_airplane:
Self-hosted discourse instance appending "7d" to the FQDN
Update “3.4.0.beta4” failed
Issues with Discourse 3.5.0.beta2-dev - SMTP and Background Jobs
Install production ready stable on vps
Help deploying older versions of Discourse
[solved] How to avoid getting -dev versions when updating?
Production upgrades - correct procedure to follow
Production upgrades - correct procedure to follow
Problem with Upgrade [error 137]
ESR Usage Help
Is it possible to disable Discourse updates?
Is it possible to disable Discourse updates?

4 сообщения были объединены в существующую тему: Помощь в развёртывании более старых версий Discourse

Является ли git pull необходимым шагом или это излишняя команда, оставшаяся от старой документации, как в случае с обновлением Discourse (Ручное обновление Discourse и образа Docker до последней версии)?

По моему опыту, git pull бывает иногда полезен — например, это было необходимо, когда мы переходили с yarn на pnpm…

Обычно нет необходимости беспокоиться о регулярной пересборке.

2 лайка

Полезно знать! Спасибо за информацию.

что я обычно делаю :sweat_smile:, это пытаюсь пересобрать, и если это по какой-то неочевидной причине не получается, сначала пробую выполнить git pull — это занимает немного времени.

В теории это никогда не должно требоваться. Лаунчер автоматически обнаружит устаревшую копию и выполнит git pull самостоятельно:

1 лайк

Спасибо за подробности. Действительно, это имеет смысл. Попробую без git pull и сообщу вам о результатах.

1 лайк

Это странно. Код, о котором идет речь, датируется 2015 годом, мой форум — 2018-м, и тем не менее я довольно уверен, что здесь обсуждалось несколько случаев, когда требовалось выполнить git pull.

Что касается меня, я всегда делаю git pull, если не забуду — это ничего мне не стоит.

Это часто упоминается, я думаю, из-за этих исторических документов. Я не считаю, что когда-либо видел доказательства того, что это действительно помогает.

Но да, нет ничего плохого в том, чтобы запускать его вручную :person_shrugging:

1 лайк

Поскольку в файле yml используется version, а не supported tracking branch, не стоит ли добавить (version) в заголовок темы?

Меня также немного шокировала дата. Но, проверив историю версий, я увидел, что последнее обновление было 18 мая.

Я попытался обновить исходное сообщение, чтобы использовать нашу современную терминологию «канал», и убрать некоторые ненужные упоминания git pull.

1 лайк

Должно быть, существует хотя бы один крайний случай, потому что в очень редких ситуациях это определённо «помогло мне преодолеть трудности».

Неужели это происходит, когда основной скрипт изменяется при определённых условиях?

1 лайк