Vérifier la validité du plugin ou du thème

J’ai collecté environ 200 dépôts GitHub pour des plugins et thèmes Discourse. Existe-t-il un moyen de vérifier la compatibilité avec la dernière version de 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

Premièrement, beaucoup d’entre eux sont des thèmes et ne devraient pas être installés via le fichier app.yml.

Deuxièmement, vous ne devriez installer aucun plugin dans Discourse par défaut. Tout ce dont vous avez besoin pour un forum de discussion est inclus dans le logiciel principal. Les plugins ne doivent être ajoutés qu’après une réflexion approfondie, si la complexité accrue justifie les fonctionnalités supplémentaires.

Bien sûr. Il suffit de reconstruire et de tester pour s’assurer qu’ils fonctionnent tous.

Dans la mesure où vous posez cette question, il n’existe probablement pas de réponse qui puisse avoir du sens pour vous.

Vous devez installer des plugins uniquement lorsqu’ils résolvent un problème, et non pas tout installer puis essayer de les corriger.

Pour certains sites, j’installe automatiquement des ensembles de plugins inclus dans les plans standard ou business de cdck. Pour beaucoup de gens, même cela n’est pas toujours une bonne idée.

Vous ne voulez probablement aucun des deux plugins que je propose. Ils sont utiles pour une communauté très spécifique ayant des besoins particuliers.

Je l’ai compris.
Deuxièmement, je veux juste savoir ce qu’ils font dans le cas où cela se produit. Je sais qu’il existe une solution similaire.

Dans ce cas, vous devez consulter le sujet qui les décrit, le fichier Readme du plugin ou le code lui-même. Il n’a pas de sens de demander « à quoi servent ces 50 plugins ? ».

Vous m’avez mal compris.

La première chose, c’est ce que vous avez dit : lire la documentation.
La deuxième, c’est d’installer et de vérifier à quoi cela ressemble réellement.
C’est ce que je veux faire.

Un forum simple où l’on peut voir tous les plugins ou thèmes disponibles via leur activation ou désactivation. Pour l’instant, il y a pas mal d’aperçus, mais pas tous. En même temps, nous ne savons pas si l’un des thèmes convient.

Il existe de nombreux plugins qui utilisent le même chemin d’accès et peuvent entraîner des conflits. La meilleure approche pour installer un plugin est de ne le faire que si et lorsque vous estimez que votre communauté a besoin d’une solution que Discourse n’inclut pas dans son noyau. J’ai déployé une vingtaine de communautés pour mes clients, et seulement une demi-douzaine ont réellement opté pour certains plugins, car leur cas d’usage nécessitait quelque chose de plus que ce qui est déjà inclus dans Discourse. La plupart des communautés n’ont besoin que d’améliorations visuelles, qui peuvent presque toujours être réalisées en utilisant des thèmes.

Oui, j’ai beaucoup de conflits et je ne suis pas très familier avec Ruby ni très enclin à lire du code. Je me demande donc s’il existe déjà une compatibilité éprouvée entre les plugins et les thèmes, car lorsque vous avez une exigence, vous pouvez choisir. Cela permet d’économiser beaucoup de temps aux membres de la communauté Discourse.

Le choix le plus sûr lorsque vous recherchez la compatibilité la plus récente est d’utiliser les plugins officiels, car ce sont souvent ceux qui sont testés pour fonctionner avec Discourse par une base d’utilisateurs relativement importante et ils ont plus de chances de recevoir des correctifs rapides en cas de problème.

Je connais ce principe, mais il empêche parfois la croissance de notre communauté.

Ce n’est pas un plugin officiellement publié ni pris en charge. Il s’agit simplement d’un dépôt en cours de développement (WIP) en attente de modifications de la part d’Apple. Il figure toujours sur ma liste de tâches à reprendre lorsque les conditions le permettront.

Si je l’avais publié, il y aurait eu un sujet dédié expliquant comment l’utiliser.

Les plugins tiers fonctionnels ont généralement leur propre sujet dans la catégorie #plugin, décrivant leur utilisation. Si cela manque, soyez très prudent.

Comme l’a indiqué Falco, vous devriez commencer par le logiciel de base (vanilla) et n’ajouter un plugin que s’il apporte des fonctionnalités absolument indispensables, et uniquement si son historique montre qu’il est bien pris en charge, car chaque mise à jour risque de rendre votre site inopérant.

Je vous déconseille donc d’installer un plugin si :

  • il n’a pas de sujet dédié dans #plugin indiquant explicitement qu’il a été publié ;
  • son sujet a été déplacé vers #plugin:broken-plugin ;
  • il ne présente pas de commits récents (qui reflètent probablement des mises à jour pour maintenir la compatibilité avec Discourse ou un support actif pour corriger des bugs) ;
  • vous ne comprenez pas ce qu’il fait fonctionnellement.

L’attente selon laquelle l’ajout de plus de plugins créerait de manière magique une communauté prospère est, malheureusement, une idée reçue très répandue.

Juste une pensée. Serait-il possible d’exécuter uniquement les tests ?

spitball : un moyen d’installer les tests depuis le dépôt sans installer et exécuter le plugin ?

Les sujets howto sur l’installation en mode développement expliquent comment exécuter les tests, et je pense que ces tests s’exécutent sur tous les plugins installés. De nombreux plugins n’ont pas de tests, ou peuvent être écrits de manière à provoquer l’échec des tests s’ils sont conçus pour modifier le fonctionnement de Discourse.

De plus, il existe (Superseded) Set up plugin continuous integration tests on Travis CI, qui vous permettra d’exécuter des tests pour un plugin donné à chaque commit.

Je serais intéressé de savoir comment configurer Travis pour qu’il exécute une série complète de tests sur un ensemble spécifique de plugins afin de confirmer l’absence de conflits. Un jour, je me lancerai dans la création d’un sujet à ce sujet.

Il est certain que les tests de tous les plugins mentionnés ci-dessus échoueront, et savoir qu’ils échouent ne sera utile à personne.

Oui, la logistique est décourageante. Qu’est-ce que la permutation, quelque chose comme 2n où n est le nombre de valeurs individuelles ?

Quoi qu’il en soit, même avec seulement 30 modules complémentaires, il existe plus d’un milliard de combinaisons possibles en tant que ressource « à l’avance ». Et ce pour n’importe quel « instantané » donné dans le temps, chaque changement de version rendant la question de moins en moins pertinente.

En tant que service « à la demande », je ne vois pas de bonne interface utilisateur pour présenter toutes les possibilités, et même une limitation sévère de l’interface introduirait un risque de sécurité si elle n’est pas contrôlée en fonction des dépôts installés.

Je ne dis pas que c’est impossible ou non viable. Je ne sais pas quel modèle de revenus et de dépenses pourrait fonctionner.