Включение более популярных плагинов в ядро Discourse

Если ошибка указывает на то, что reactions, data explorer и solved всё ещё присутствуют в вашем файле YML, то, скорее всего, это так. Если вы считаете, что закомментировали их, возможно, они были введены дважды?

Определённо стоит проверить конфигурацию и убедиться, что вы редактировали именно тот файл YML, который соответствует вашему сайту.

1 лайк

Привет,

Я успешно обновил свой форум до последней стабильной версии 3.4.6. До этого я использовал отдельный плагин discourse-oauth2-basic для аутентификации.

В разделе /admin/plugins входа через OAuth2 Basic нет.

Моя версия Discourse — 3.4.6.

СОВЕТ: Плагин «discourse-oauth2-basic» теперь входит в состав Discourse и не должен включаться в конфигурацию вашего контейнера.
Удалите строку «git clone GitHub - discourse/discourse-oauth2-basic: A basic OAuth2 plugin for use with Discourse» из файла containers/app.yml, а затем попробуйте снова.
Для получения дополнительной информации см. Включение популярных плагинов в ядро Discourse

Мне пришлось удалить плагин discourse-oauth2-basic перед обновлением до версии 3.4.6.

Не могли бы вы помочь мне понять, что могло пойти не так?

  • Не ошибся ли я в понимании процесса, и всё ещё требуется этот плагин?
  • Не упустил ли я дополнительный шаг для включения функциональности OAuth2 в ядре после удаления плагина?
  • Или я просто ищу настройки не в том месте?

Спасибо!

1 лайк

Хм… может быть, дело в том, что вы используете стабильную версию?

Следуя системному промпту, я удалил плагин discourse-oauth2-basic перед успешным обновлением до стабильной версии 3.4.6.Однако теперь я обнаружил, что в панели администратора отсутствуют параметры конфигурации для OAuth 2 Basic.

1 лайк

Если вы используете стабильную версию, то ни одно из сказанного в этой теме не будет актуально до следующего стабильного релиза в начале августа. Поэтому вам следует снова добавить oauth2-basic в ваш app.yml. Первоначальная ошибка, вероятно, была вызвана по другой причине.

К сожалению, логика «подсказок» работает не очень умно и не различает стабильные версии и версии с пройденными тестами.

5 лайков

Я тоже, но что мы можем с этим сделать, да? lol. Думаю, что добавление большего количества нативных ресурсов, то есть плагинов, даже если они отключены, — не лучшее решение для помощи новичкам в самостоятельном хостинге.

2 лайка

@nat Посмотри, мой перевод цитаты и мой ответ

3 лайка

Как я ни пытался закомментировать строки с клонированием в секции плагинов, система всё равно воспринимала их как команду на установку этих плагинов. Что я сделал? Удалил строку, и в итоге всё заработало.

При обновлении обязательно проверяйте список плагинов, уже включённых в ядро Discourse, чтобы не добавлять их в секцию плагинов для установки. Если такая строка есть в вашем файле app.yml, удалите её.

2 лайка

Поскольку они предустановлены, я считаю, что должны быть опции, чтобы отделить их :electric_plug: от списка установленных. Список установленных должен позволять удалять их, а не только отключать.

Возможно, основные объединённые плагины стоит разместить в разделе «Рекомендуемые плагины» или «Основные плагины».

И, конечно, добавить фильтр «Все».

2 лайка

Их предложение не идеально, но оно работает. Пример:

## Плагины размещаются здесь
## подробности см. по адресу https://meta.discourse.org/t/19157
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/pfaffman/discourse-allow-pm-to-staff.git
          #- git clone https://github.com/discourse/discourse-hcaptcha.git
          #- git clone https://github.com/discourse/discourse-calendar.git
          - rm -rf discourse-adplugin
          - rm -rf discourse-affiliate
          - rm -rf discourse-ai
          - rm -rf discourse-apple-auth
          - rm -rf discourse-assign
          - rm -rf discourse-login-with-amazon
          - rm -rf discourse-lti
          - rm -rf discourse-microsoft-auth
          - rm -rf discourse-patreon
          - rm -rf discourse-subscriptions
          - rm -rf discourse-zendesk-plugin

(Настройте по своему усмотрению)

6 лайков

7 сообщений были перенесены в новую тему: Устранение сбоев при загрузке в Discourse

Реальность такова, что стабильная ветка является LTS, и довольно хорошей. Она получает обновления безопасности, и вполне понятно, какие версии плагинов с ней совместимы (благодаря файлу .discourse-compatibility). Я полностью признаю, что до того, как всё начало работать как надо, прошло много времени, но за последние два года или около того это изменилось — это большое достижение команды.

Теперь о второй части вашего утверждения. Действительно, часто создаётся впечатление, что stable — это то, чего не стоит желать. Но на хостинге Communiteq мы уже 2,5 года предоставляем клиентам бесплатный выбор между стабильной версией («приоритет стабильности, новые обновления два раза в год, обновления безопасности раз в месяц») и тестовой версией («всегда на острие, новые функции раз в месяц»), и 85% выбирают стабильную версию.

Понимаю. Но разве это не проблема разработки, а не проблема продакшена? Я вполне понимаю, что вы делаете это в среде разработки. Но добавление этих плагинов в стандартную установку продакшена как бы противоречит самой идее плагина (который по определению не является стандартным компонентом).

Единственная реальная выгода для продакшена, которую я вижу, — это очень специфический случай с удалением плагинов и хостингом для нескольких сайтов. (Снова скажу, что это хорошо, все остальные проблемы продакшена со временем были решены!)

Это тоже можно было бы решить в скрипте настройки, показав список плагинов, которые пользователи могут выбрать, а затем добавив их в app.yml.

Но вы всё ещё предлагаете разные (под)наборы плагинов для разных тарифных планов, верно?

6 лайков

Я бы тоже предпочел подход с раскомментированным app.yml.

1 лайк

Все эти плагины установлены во всех наших планах для самостоятельного использования. Некоторые тарифы не имеют к ним доступа, но они остаются установленными, даже если доступ отсутствует.


Мы не меняем это решение, поэтому людям просто придётся с этим смириться. Я понимаю, что некоторые расстроены, некоторые против этого, но это решение не изменится.

Это даёт нам скорость в разработке, определяет наши предпочтения и обеспечивает более стабильную работу Discourse, используемого большинством людей.

Существуют и другие плагины… основные плагины — это не единственные плагины.

5 лайков

Сообщение было разделено на новую тему: Discourse не выпускает LTS-версии

Я абсолютно согласен, что имеет смысл перенести популярные плагины и их функциональность в основное изображение. Особенно если они созданы теми же разработчиками (CDCK), что и ядро. Это распространённая практика даже для других проектов программного обеспечения. Но нам следует решить проблемы с загрузкой — я всё ещё оптимистичен :sunny:

1 лайк

Это причина, по которой вы не можете восстановить.

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

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

Файл совместимости — это здорово. Однако, на мой взгляд, информация о совместимости должна добавляться в темы. Ссылкой или инструкциями на случай, если TC/плагин доступен как для стабильной, так и для установки с пометкой «тесты пройдены».

1 лайк

Спасибо за руководство; всё работает отлично, кроме плагина «automation», который нельзя удалить, так как, похоже, плагин чата зависит от него.

1 лайк

Плагин автоматизации, честно говоря, вообще не стоит удалять. У него огромный потенциал для полезных применений. На мой взгляд, нужно уделить ему больше времени, чтобы расширить возможности автоматизации.

Но да, здорово, что появилась возможность убрать лишнее, удалив надстройки. Как указал @RGJ, в последнее время дополнительные опции фактически объединились, и теперь можно запрашивать подтверждение перед их установкой. Возможно, стоит даже создать отдельный скрипт для запуска после установки, чтобы сделать процесс более удобным для тех, кто разворачивает систему самостоятельно, и избежать необходимости редактировать app.yml.