Неверный список версий в темах Discourse

Я обнаружил это при обновлении. Ну, прошло уже довольно много времени, но на этот раз я сохранил журнал.

[db:default] 'Messages section for sidebar' -  проверка...
Неверный список версий в /tmp/discourse_theme_c64ff70a4cc7d614d9e88b106805c78f

[db:default] 'Unhide composer fullscreen toggle for tablets' -  проверка...
Неверный список версий в /tmp/discourse_theme_4f18f6036fb93a7e2c8eca368c66ad09


[db:default] 'Discourse Highlight to Search' -  проверка...
Неверный список версий в /tmp/discourse_theme_f7e393183be5f0189adb336c4602f071

[db:default] 'Discourse Wikipedia Lookup' -  проверка...
Неверный список версий в /tmp/discourse_theme_8cf76b5d4fe5eac70cd636ee2487be35

[db:default] 'Accent' -  проверка...
Неверный список версий в /tmp/discourse_theme_9796e5491667b1c43c7b9c680fc68ff3

Мне стоит беспокоиться?

Не совсем, но, возможно, да.

Существует множество причин, по которым вы можете получить эту ошибку. Самой распространённой причиной, вероятно, является то, что файл .discourse-compatibility пуст [1], [2], [3]. (Символ # в начале строки обозначает комментарий)

По сути, это предупреждение означает, что Discourse не может определить, совместима ли текущая «последняя» версия компонента/плагина с текущей версией Discourse. Или же нужно ли переключиться на более старую версию компонента/плагина.

Файл .discourse-compatibility компонента/плагина может содержать соответствие между диапазоном версий Discourse и конкретной ревизией компонента/плагина. Если Discourse находит такое соответствие, он использует эту ревизию вместо последней. Это требует, чтобы разработчик обновлял файл каждый раз, когда вносит изменения, несовместимые с предыдущими версиями Discourse. Пока вы не вносили несовместимых изменений, файл оставался пустым, что и вызывало появление этого предупреждения.

Работоспособность компонента/плагина с последней версией Discourse всегда является предположением.

Я начал разрабатывать плагин для версии 2026.1, поэтому это минимальная версия Discourse. Он всё ещё разрабатывается и тестируется для этой версии (а также для текущей последней). Поскольку более старых поддерживаемых версий Discourse не существует, файл .discourse-compatibility пуст; отсюда и появляется это предупреждение. Как только поддержка версии 2026.1 прекратится, я перейду на новую версию ESR. В тот момент я перестану тестировать плагин для версии 2026.1 и, следовательно, обновлю файл .discourse-compatibility, сделав его, наконец, непустым. Только тогда это предупреждение исчезнет для моего плагина.

Более подробная информация о файле .discourse-compatibility: Introducing .discourse-compatibility: pinned plugin/theme versions for older Discourse versions

Я попробовал это. Я создал форк компонента Discourse Wikipedia Lookup и добавил туда файл .discourse-compatibility. Я скопировал содержимое из другого компонента. Предупреждение исчезло. Так что проблема действительно была в этом.

Спасибо.

Но я посмотрел несколько других тематических компонентов, и в них либо вообще отсутствовал .discourse-compatibility, либо он был полностью пустым. Однако они не выдавали предупреждений.

Вопрос решён, и мы продолжаем жить.

Копирование содержимого файла совместимости из другого компонента может привести к ошибкам, потому что коммит, на который ссылается конкретная версия Discourse, отсутствует в репозитории, в который вы его скопировали.

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

Это предотвратит запись предупреждений в журнал для файлов, содержащих только комментарии:

Файл .discourse-compatibility по-прежнему поддерживается, хотя теперь мы рекомендуем использовать стратегию совместимости тем/плагинов на основе ветки d-compat/*. Подробнее здесь:

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

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