Überprüfen Sie die Gültigkeit von Plugins oder Themes

Ich habe etwa 200 GitHub-Repositories für Discourse-Plugins und -Themes gesammelt. Gibt es eine Möglichkeit, die Kompatibilität mit der neuesten Discourse-Version zu prüfen?

          - 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

Erstens sind viele davon Themes und sollten nicht über die app.yml-Datei installiert werden.

Zweitens solltest du in Discourse standardmäßig keine Plugins installieren. Alles, was du für ein Diskussionsforum benötigst, ist in der Hauptsoftware enthalten. Plugins sollten nur nach sorgfältiger Abwägung hinzugefügt werden, wenn die erhöhte Komplexität die zusätzlichen Funktionen rechtfertigt.

Klar. Einfach neu aufbauen und testen, ob alles funktioniert.

Wenn du diese Frage stellst, ist es ziemlich sicher so, dass es keine Antwort gibt, die für dich Sinn ergibt.

Du möchtest Plugins installieren, wenn sie ein Problem lösen, und nicht alles installieren und dann versuchen, sie zu reparieren.

Bei einigen Seiten installiere ich automatisch Plugin-Sets, die im cdck Standard- oder Business-Plan enthalten sind. Für viele Leute ist das jedoch nicht immer eine gute Idee.

Du möchtest mit sehr hoher Wahrscheinlichkeit keines der beiden Plugins von mir. Sie sind nur für eine sehr spezifische Community mit bizarren Anforderungen nützlich.

Ich habe es verstanden.
Zweitens möchte ich nur wissen, was sie in einem solchen Fall tun. Ich weiß, dass es eine ähnliche Lösung gibt.

Dann musst du dir das Thema ansehen, das sie beschreibt, das Plugin-Readme oder den Code selbst. Es ergibt keinen Sinn zu fragen: „Was machen diese 50 Plugins?

Du hast mich missverstanden.
Erstens: Das, was du sagtest, war, die Dokumentation zu lesen.
Zweitens: Man sollte es installieren und prüfen, wie es wirklich aussieht.
Das ist es, was ich tun möchte.
Ein einfaches Forum, in dem du Vorschauen aller verfügbaren Plugins oder Themes siehst, indem du sie deaktivierst oder aktivierst. Momentan gibt es zwar Vorschauen, aber nicht für alle. Gleichzeitig wissen wir nicht, ob eines der Themes passt.

Es gibt viele Plugins, die denselben Pfad verwenden und zu Konflikten führen können. Der beste Ansatz zur Installation eines Plugins ist es, dies nur dann zu tun, wenn Sie der Meinung sind, dass Ihre Community eine Lösung benötigt, die Discourse nicht im Kern bereitstellt. Ich habe etwa zwei Dutzend Communities für meine Kunden deployed, und nur ein halbes Dutzend hat sich tatsächlich für einige Plugins entschieden, da ihr Anwendungsfall etwas mehr erfordert als das, was Discourse bereits im Kern bietet. Die meisten Communities benötigen nur visuelle Verbesserungen, die fast immer durch die Verwendung von Themes erreicht werden können.

Ja, ich habe viele Konflikte und bin mit Ruby nicht wirklich vertraut und zögere auch, Code zu lesen. Ich frage mich daher, ob es bereits bewährte Plugin- und Theme-Kompatibilität zwischen ihnen gibt, wenn Sie eine Anforderung haben, die Sie auswählen können. Das würde den Teilnehmern der Discourse-Community viel Zeit sparen.

Die sicherste Wahl, wenn Sie nach der aktuellsten Kompatibilität suchen, ist die Verwendung offizieller Plugins, da diese oft von einer relativ großen Benutzerbasis auf ihre Funktionsfähigkeit mit Discourse getestet werden und im Falle von Problemen mit sehr hoher Wahrscheinlichkeit schnelle Fehlerbehebungen erhalten.

Ich kenne dieses Prinzip zwar, aber es hindert das Wachstum unserer Community manchmal daran.

Dies ist kein veröffentlichtes Plugin und wird nicht unterstützt. Es handelt sich lediglich um ein WIP-Repository, das auf Änderungen von Apple wartet. Es steht weiterhin auf meiner Liste, mich wieder darum zu kümmern, sobald die Bedingungen es zulassen.
Hätte ich es veröffentlicht, gäbe es ein dediziertes Thema zur Verwendung.

Funktionierende Drittanbieter-Plugins haben in der Regel ihr eigenes Thema in der Kategorie #plugin, in dem beschrieben wird, wie man sie verwendet. Fehlt dies, sollte man sehr vorsichtig sein.

Wie von Falco erwähnt, solltest du mit der Standardsoftware beginnen und nur dann ein Plugin hinzufügen, wenn es Funktionen bietet, die du unbedingt benötigst, und nur wenn du anhand seiner Historie erkennen kannst, dass es gut unterstützt wird, da jedes Upgrade das Risiko birgt, dass deine Seite nicht mehr ordnungsgemäß funktioniert.

Daher empfehle ich dir nicht, ein Plugin zu installieren, wenn:

  • es kein dediziertes Thema in #plugin gibt, das ausdrücklich bestätigt, dass es veröffentlicht wurde
  • sein Thema in #plugin:broken-plugin verschoben wurde
  • es keine aktuellen Commits zeigt (die wahrscheinlich Updates zur Aufrechterhaltung der Kompatibilität mit Discourse oder aktive Unterstützung zur Fehlerbehebung widerspiegeln)
  • du nicht verstehst, was es funktional bewirkt.

Die Erwartung, dass das Hinzufügen weiterer Plugins irgendwie eine erfolgreiche Community schaffen wird, ist leider ein sehr verbreiteter Irrglaube.

Nur eine Idee. Wäre es möglich, nur die Tests auszuführen?

Spitball: eine Möglichkeit, die Tests aus dem Repository zu installieren, ohne das Plugin zu installieren und auszuführen?

Die #howto-Themen zur Entwicklungsininstallation beschreiben, wie Tests ausgeführt werden, und ich gehe davon aus, dass diese Tests gegen alle installierten Plugins laufen. Viele Plugins haben keine Tests oder sind möglicherweise so geschrieben, dass sie zu Testfehlern führen, wenn sie darauf ausgelegt sind, das Verhalten von Discourse zu ändern.

Außerdem gibt es (Superseded) Set up plugin continuous integration tests on Travis CI, mit dem Sie Tests für ein bestimmtes Plugin bei jedem Commit ausführen können.

Mich würde interessieren, wie man Travis dazu bringen kann, einen vollständigen Test gegen eine bestimmte Auswahl von Plugins durchzuführen, um sicherzustellen, dass es keine Konflikte gibt. Eines Tages werde ich mich daran machen, ein Thema dazu zu erstellen.

Es ist sicher, dass Tests aller oben genannten Plugins fehlschlagen werden, und zu wissen, dass sie fehlschlagen, wird für niemanden von Nutzen sein.

Ja, die Logistik ist überwältigend. Was ist eine Permutation, so etwas wie 2n, wobei n die Anzahl der einzelnen Werte ist?

Wie auch immer: Selbst wenn man als Ressource „im Voraus