Скоро Discourse обновит версию JavaScript-фреймворка Ember с версии 3 до версии 5. Основная часть подготовительной работы уже завершена, и многие сайты уже работают на Ember 5 (включая Meta!). ![]()
Это обновление сейчас доступно через флаговую настройку! Для самохостинговых установок Discourse оно включено по умолчанию с 10 января. Изначально поддержка Ember 3 останется доступной через флаг, но будет удалена в течение первого квартала 2024 года.
На нашем управляемом хостинге discourse.org мы будем постепенно внедрять этот флаг в течение следующих нескольких месяцев:
| Дата обновления | |
|---|---|
| Basic | 2023-12-07 |
| Free | 2023-12-12 |
| Pro | 2024-01-15 |
| Business | 2024-01-22 |
| Enterprise | (в индивидуальном порядке) |
Что это значит для меня и моего сайта?
Если вы запускаете Discourse без дополнительных тем, плагинов или компонентов тем… вы полностью готовы! Не нужно ничего делать или беспокоиться об этом.
Точно так же, если вы используете только официальные темы и плагины, мы позаботимся обо всём! Мы гарантируем, что все наши официальные темы, компоненты тем и плагины будут готовы к обновлению.
Для тех, кто использует сторонние кастомизации, их разработчики должны внести необходимые изменения, чтобы вы могли продолжать использовать их без проблем в течение этого перехода.
Однако, если у вас есть кастомные темы, компоненты тем или плагины, которые вы создали или заказали для своих сайтов, то этот пост для вас! Мы рассмотрим, как выявить и устранить любые проблемы до обновления.
Выявление проблем
Все проблемы, связанные с обновлением до Ember 5, можно выявить заранее, проверив использование устаревших API. В последних версиях Discourse (начиная с Discourse 3.2.0.beta4-dev) эти критические устаревания будут вызывать предупреждающий баннер для администраторов:
Дополнительную информацию о сработавших устареваниях можно найти в консоли разработчика браузера. Как правило, рекомендуется устранять все видимые устаревания. Но для этого обновления версии Ember ключевыми являются следующие:
-
discourse.modal-controllers(см. эту тему для получения дополнительной информации) -
все устаревания Ember (т. е. те, у которых ID не начинается с
-discourse.)
При выводе устареваний в консоль Discourse пытается определить соответствующую тему или плагин.
Для разработчиков и провайдеров хостинга мы предоставили несколько инструментов для массового выявления устареваний:
-
При запуске тестов QUnit в конце выводится отчёт со списком всех неустранимых устареваний. В действиях GitHub версия этого отчёта в формате Markdown добавляется на страницу сводки рабочего процесса.
-
Для провайдеров хостинга у нас есть плагин discourse-deprecation-collector, который увеличивает счётчики Prometheus при обнаружении устареваний в продакшене.
Устранение устареваний
Обычно сообщение в консоли включает описание проблемы и шаги, необходимые для её устранения. В некоторых случаях они содержат ссылки на внешние ресурсы, такие как веб-сайт Ember deprecations или Discourse Meta.
Если что-то непонятно, пожалуйста, не стесняйтесь написать ниже или в отдельной теме Development, и мы сделаем всё возможное, чтобы помочь.
Тестирование на Ember 5
Чтобы протестировать работу на Ember 5 в локальной среде разработки, вы можете запустить наш помощник ember-cli с переменной окружения EMBER_VERSION. Например:
EMBER_VERSION=5 bin/ember-cli -u
Чтобы убедиться, что всё работает как ожидалось, проверьте версию Ember, которую Discourse выводит в консоль браузера.
В продакшене вы можете добиться того же, добавив EMBER_VERSION: 5 в секцию env: вашего файла app.yml.




