Проверка валидности плагина или темы

Я собрал около 200 репозиториев GitHub для плагинов и тем Discourse. Есть ли способ проверить их совместимость с последней версией Discourse?

          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/Fakebook
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-brand-header
          - git clone https://github.com/discourse/discourse-knowledge-base-theme
          - git clone https://github.com/discourse/discourse-characters-required
          - git clone https://github.com/discourse/discourse-solved
          - git clone https://github.com/discourse/discourse-voting
          - git clone https://github.com/discourse/discourse-calendar
          - git clone https://github.com/discourse/discourse-styleguide
          - git clone https://github.com/discourse/discourse-assign
          - git clone https://github.com/discourse/discourse-yearly-review
          - git clone https://github.com/discourse/discourse-sitemap
          - git clone https://github.com/discourse/discourse-custom-header-links
          - git clone https://github.com/discourse/discourse-fingerprint.git
          - git clone https://github.com/discourse/wp-discourse
          - git clone https://github.com/discourse/discourse-translator
          - git clone https://github.com/discourse/discourse-tooltips
          - git clone https://github.com/discourse/discourse-knowledge-explorer
          - git clone https://github.com/discourse/DiscoTOC
          - git clone https://github.com/discourse/discourse-chart
          - git clone https://github.com/discourse/discourse-social-share
          - git clone https://github.com/discourse/discourse-users-nav
          - git clone https://github.com/discourse/discourse-algolia
          - git clone https://github.com/discourse/discourse-whos-online
          - git clone https://github.com/discourse/discourse-amazon-sns
          - git clone https://github.com/discourse/discourse-login-with-amazon
          - git clone https://github.com/discourse/discourse-reply-template-component
          - git clone https://github.com/discourse/discourse-azure-blob-storage
          - git clone https://github.com/discourse/discourse-header-submenus
          - git clone https://github.com/discourse/discourse-push-notifications
          - git clone https://github.com/discourse/discourse-affiliate
          - git clone https://github.com/discourse/discourse-backup-s3-uploads
          - git clone https://github.com/discourse/Discourse-Tiles-image-gallery
          - git clone https://github.com/discourse/discourse-placeholder
          - git clone https://github.com/discourse/discourse-plugin-office365-auth
          - git clone https://github.com/discourse/discourse-topic-group-button-component
          - git clone https://github.com/discourse/discourse-topic-author
          - git clone https://github.com/discourse/discourse-alt-logo
          - git clone https://github.com/discourse/discourse-like-column
          - git clone https://github.com/discourse/discourse-linkify-words
          - git clone https://github.com/discourse/discourse-optional-title-mobile-header
          - git clone https://github.com/discourse/discourse-expand-collapse-banner
          - git clone https://github.com/discourse/discourse-full-width-banner
          - git clone https://github.com/discourse/discourse-two-columns-banner
          - git clone https://github.com/discourse/Discourse-nav-links-component
          - git clone https://github.com/discourse/twitter-profile-link
          - git clone https://github.com/discourse/plugin_discourse_dynamic_sidebar
#          - git clone https://github.com/discourse/discourse-zendesk-plugin
          - git clone https://github.com/discourse/discourse-prometheus-alert-receiver
          - git clone https://github.com/discourse-pro/df-paypal-buy-now
          - git clone https://github.com/discourse/discourse-steam-login
          - git clone https://github.com/discourse/discourse-graphviz
          - git clone https://github.com/discourse/discourse-backup-uploads-to-s3    
          - git clone https://github.com/discourse/discourse-focused-sidebar
          - git clone https://github.com/tshenry/discourse-blog-post-styling

##       https://github.com/procourse/    
          - git clone https://github.com/procourse/discourse-mlm-daily-summary
          - git clone https://github.com/procourse/discourse-house-ads
          - git clone https://github.com/procourse/procourse-installer
          - git clone https://github.com/procourse/procourse-static-pages
          - git clone https://github.com/tshenry/discourse-versatile-banner

##       https://github.com/paviliondev/    
          - git clone https://github.com/paviliondev/discourse-pavilion
          - git clone https://github.com/paviliondev/discourse-question-answer
          - git clone https://github.com/paviliondev/discourse-follow
          - git clone https://github.com/paviliondev/user-card-directory
          - git clone https://github.com/paviliondev/discourse-wikimedia-auth
          - git clone https://github.com/paviliondev/discourse-advanced-ticketing
          - git clone https://github.com/paviliondev/discourse-locations
          - git clone https://github.com/paviliondev/discourse-landing-page
          - git clone https://github.com/paviliondev/discourse-ratings
          - git clone https://github.com/paviliondev/discourse-topic-previews
          - git clone https://github.com/paviliondev/discourse-multilingual          
          - git clone https://github.com/paviliondev/discourse-team-timezones       
          - git clone https://github.com/paviliondev/discourse-custom-wizard
            
# https://github.com/mozilla
          - git clone https://github.com/mozilla/discourse-email-all
          - git clone https://github.com/mozilla/discourse-post-read-email
          - git clone https://github.com/mozilla/discourse-mozilla-iam
          - git clone https://github.com/mozilla/discourse-category-categorization
          - git clone https://github.com/mozilla/discourse-tldr
          - git clone https://github.com/mozilla/discourse-group-category-notification    
          - git clone https://github.com/mozilla/discourse-mozilla-theme
#pfaffman
          - git clone https://github.com/pfaffman/discourse-ucf-to-account-page
          - git clone https://github.com/pfaffman/discourse-add-to-summary
#merefield
          - git clone https://github.com/merefield/discourse-sign-in-with-apple
          - git clone https://github.com/merefield/discourse-discord-bot
          - git clone https://github.com/merefield/discourse-onebox-assistant
#programmersforum
          - git clone https://github.com/programmersforum-reborn/discourse-simplify-category-list
          - git clone https://github.com/programmersforum-reborn/discourse-hide-category-selector
          - git clone https://github.com/programmersforum-reborn/discourse-disable-onboarding-overlay
          - git clone https://github.com/programmersforum-reborn/discourse-adjust-emoji-sizes


          - git clone https://github.com/ilikourou/discourse-ads
          - git clone https://github.com/AtakanYildirim1/esporintheme
          - git clone https://github.com/crbothe/discourse-wizard

          - git clone https://github.com/sylque/dcs-discourse-plugin
          - git clone https://github.com/jjaffeux/discourse-group-checklist
          - git clone https://github.com/markschmucker/digest_webhook
          - git clone https://github.com/tshenry/discourse-agreement-banner
          - git clone https://github.com/Daemonite/discourse-material-theme
          - git clone https://github.com/hnb-ku/discourse-checkout

          - git clone https://github.com/rimian/discourse-subscriptions
          - git clone https://github.com/roblox-dev-forum/discourse-definitions
          - git clone https://github.com/roblox-dev-forum/simple-flags
          - git clone https://github.com/eviltrout/discourse-no-nazis

          - git clone https://github.com/anythingagency/discourse-cm-theme
                      
          - git clone https://github.com/RobertFULL30/Discourse-Beer-Component-
          - git clone https://github.com/dfuzr/libra-discourse-category-banners
          - git clone https://github.com/iunctis/discourse-boutons-extras

          - git clone https://github.com/openSUSE-zh/discourse-cjk-text-spacing
          - git clone https://github.com/aksoforever/discourse-hello
          - git clone https://github.com/tshenry/discourse-last-seen-user-card-theme-component
          - git clone https://github.com/murayuki/Discourse-Keyboard-Text
          - git clone https://github.com/lionel-rowe/unformatted_code_detector
          - git clone https://github.com/anythingagency/discourse-cm
          - git clone https://github.com/bbardin/c.f-discourse-easy-footer
          - git clone https://github.com/Ebsy/discourse-nationalflags
          - git clone https://github.com/angusmcleod/discourse-tickets

          - git clone https://github.com/communiteq/discourse-multiple-hostnames
          - git clone https://github.com/featheredtoast/discourse-pushover-notifications
          - git clone https://github.com/lingokids/discourse-video-url
          - git clone https://github.com/mcwumbly/discourse-slackdoor
          - git clone https://github.com/davidtaylorhq/discourse-media-recorder-theme

          - git clone https://github.com/angusmcleod/discourse-layouts

          - git clone https://github.com/chrisbeach/discourse-camera-icon

Во-первых, многие из них являются темами, и их не следует устанавливать через файл app.yml.

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

Конечно. Просто пересоберите и протестируйте, чтобы убедиться, что всё работает.

Скорее всего, если вы задаёте такой вопрос, то нет ответа, который имел бы для вас смысл.

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

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

Вам почти наверняка не понадобятся ни один из моих плагинов. Они полезны только для очень специфических сообществ с необычными потребностями.

Я понял.
Второй вопрос: что они делают в случае чего? Я знаю, что есть похожее решение.

Тогда вам нужно посмотреть тему, в которой они описаны, файл README плагина или сам код. Бессмысленно спрашивать «что делают эти 50 плагинов?»

Вы меня неправильно поняли.

Во-первых, то, что вы сказали, — это прочитать документацию.
Во-вторых, нужно установить и посмотреть, как это выглядит на самом деле.
Вот что я хочу сделать.

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

Существует множество плагинов, использующих одни и те же маршруты, что может приводить к конфликтам. Лучший подход к установке плагина — делать это только в том случае, если вы считаете, что вашему сообществу требуется решение, которое не входит в базовую поставку Discourse. Я развернул около двух десятков сообществ для своих клиентов, и лишь у половины из них действительно возникла потребность в плагинах, так как их сценарии использования требовали чего-то большего, чем то, что уже есть в базовой версии Discourse. Большинству сообществ достаточно лишь визуальных улучшений, которые почти всегда можно достичь с помощью тем.

Да, у меня действительно много конфликтов, и я не очень хорошо знаком с Ruby и не очень хочу читать код. Поэтому я спрашиваю: есть ли уже проверенная совместимость плагинов и тем между ними, когда у вас есть требование, которое можно выбрать? Это сэкономило бы много времени участникам сообщества Discourse.

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

Я знаю этот принцип, но иногда он мешает росту нашего сообщества.

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

Если бы я его выпустил, была бы отдельная тема о том, как им пользоваться.

Рабочие плагины сторонних разработчиков обычно имеют свою собственную тему в категории #plugin, где описывается способ их использования. Если такой темы нет, стоит проявить особую осторожность.

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

Поэтому я не рекомендую устанавливать плагин, если:

  • у него нет отдельной темы в #plugin с явным указанием, что он выпущен;
  • его тема была перемещена в #plugin:broken-plugin;
  • в нём отсутствуют недавние коммиты (которые, вероятно, отражают обновления для совместимости с Discourse или активную поддержку для исправления ошибок);
  • вы не понимаете, какие функции он выполняет.

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

Просто мысль. Возможно ли запускать только тесты?

спитбол: способ установить тесты из репозитория без установки и запуска плагина?

Темы с инструкциями по установке для разработчиков описывают, как запускать тесты, и я считаю, что эти тесты выполняются для всех установленных плагинов. Многие плагины не имеют тестов или могут быть написаны так, что они вызовут сбои в тестах, если их цель — изменить работу Discourse.

Кроме того, существует (Superseded) Set up plugin continuous integration tests on Travis CI, которая позволит вам запускать тесты для конкретного плагина при каждом коммите.

Мне было бы интересно узнать, как настроить Travis на запуск полного теста для определённого набора плагинов, чтобы убедиться в отсутствии конфликтов. Когда-нибудь я обязательно создам тему на эту тему.

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

Да, логистика кажется пугающей. Что такое перестановка, что-то вроде 2n, где n — количество отдельных значений?

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

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

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