Обновление / пересборка Docker-контейнера приводит к версии v3.5.2 вместо v2025.11.0

Мы обновили существующую установку Discourse, как делали это несколько раз ранее: после получения текущей версии репозитория discourse_docker мы запускаем следующую команду:

./launcher rebuild app

Процесс выполняется без ошибок, и новый контейнер запускается — всё выглядит в порядке.

Однако при просмотре исходного HTML-кода работающего приложения мы видим, что оно по-прежнему заявляет о себе как версия v3.5.2 (версия до обновления), а не ожидаемая v2025.11.0.

Наша процедура такая же, как и при предыдущих обновлениях. Единственное очевидное изменение — это новая схема нумерации версий, введённая с версии v2025.11.0. Возможно, проблема связана именно с этим?

Я проверил, не забыли ли разработчики обновить строку версии в исходном коде Discourse, но это не так. См. два коммита:

Вывод команды rebuild утилиты launcher показывает, что выполняется git pull и обнаруживаются новые ветки:

(...)
 t [tag update]          beta                    -> beta
 t [tag update]          latest-release          -> latest-release
 * [new tag]             release                 -> release
 * [new tag]             v2025.11.0              -> v2025.11.0
 * [new tag]             v2025.12.0-latest       -> v2025.12.0-latest
 * [new tag]             v3.5.2                  -> v3.5.2
 * [new tag]             v3.6.0.beta2            -> v3.6.0.beta2
Switched to a new branch 'stable'
I, [2025-12-03T12:27:14.785550 #1]  INFO -- : branch 'stable' set up to track 'origin/stable'.

Тем не менее, создаётся ощущение, что выбирается неправильная (то есть не самая новая) ветка. Похоже, что в ветке «stable» содержится версия v3.5.2 (согласно файлу lib/version.rb в этой ветке).

Я перечитал заявление об релизе версии 2025.11.0, и оно действительно звучит как стабильный релиз, а не как превью или версия для ранних последователей. В связанном документе новая стратегия нумерации версий упоминается ветка latest, но теперь я ещё больше запутался в том, чего ожидать.

Неужели я что-то упускаю? Или мы можем повлиять на то, какая версия будет выбрана при пересборке? Или же это просто не работает как задумано в данный момент, и инструментарий пересборки требует изменений?

Не уверен, связано ли это, но на Docker Hub тег «latest» соответствует версии 3.5.2 — и при сортировке по убыванию это может быть самым новым тегом ещё очень долго…

v3.5.x — это правильная версия для стабильной ветки :+1:

2025.11.0 — это ежемесячный «релиз», но не «стабильный»/«ESR» релиз. (Мы скоро переименуем стабильную версию в ESR в рамках новой стратегии версионирования)

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

:person_shrugging:

Спасибо, @david — это хотя бы помогает, так как теперь я понимаю, что ничего не сделал неправильно.

Теперь остаётся проблема для нас: как решить, что является «ежемесячным выпуском», а что — «стабильным выпуском»?

Мы получаем Atom-ленту с GitHub (чтобы получать уведомления о новых обнаруженных выпусках), и там 2025.11.0 и 3.5.2 отображаются одинаково (вместе со многими другими тегами).

Так как и где мы можем легко узнать намерения вашей команды относительно конкретного тега версии?

Я согласен с @pfaffman, сейчас это очень запутанно.

Да, я вас понимаю — мы находимся в переходном периоде между двумя схемами нумерации/именования, поэтому всё немного запутанно.

Мы работаем над созданием страницы, где будут перечислены все поддерживаемые в настоящее время версии и их списки изменений. Что-то вроде этого. Надеемся, это поможет прояснить подобные вопросы.

Начиная с января 2026 года мы будем помечать релиз тегом esr. Это станет заменой текущей шестимесячной периодичности версии stable.

Таким образом, beta стала release (на самом деле это никогда не было «бета», это был просто ежемесячный контрольный пункт).

А stable станет esr, но это ещё не произошло.

Поэтому, если вам нужна шестимесячная периодичность, пока что придерживайтесь stable, а с января переходите на esr.

Если же вам нужна ежемесячная периодичность, используйте тег release.

Отлично, великие умы мыслят одинаково, ведь это именно то, на что я надеялся!

Я полностью понимаю, и мои отзывы и вопросы не были задуманы как оскорбительные.

Ранее мы обновлялись, например, с 3.5.0 до 3.5.1, а затем до 3.5.2. Не знаю, называлось ли это «стабильной» или «последней» версией в старой схеме или как это называется сейчас в новой. Меня не смущает изменение схемы версионирования и релизов, но я не настолько глубоко погружён в проект/продукт, чтобы хотеть или быть способным полностью разобраться во всех деталях новой схемы.

Спасибо за вашу очень быструю реакцию и полезный совет, что версия 3.5.2 всё ещё подходит для использования — это помогло.

И ещё:

Спасибо, @david — звучит отлично! Мы с нетерпением ждём появления этой страницы — она, надеемся, значительно упростит наш процесс обновлений!