Verifica la validità del plugin o del tema

Ho raccolto circa 200 repository GitHub per plugin e temi di Discourse. Esiste un modo per verificare la compatibilità con l’ultima versione di 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

Innanzitutto, molti di questi sono temi e non dovrebbero essere installati tramite il file app.yml.

In secondo luogo, non dovresti installare alcun plugin in Discourse di default. Tutto ciò che serve per avere un forum di discussioni è incluso nel software principale. I plugin dovrebbero essere aggiunti solo dopo un’attenta considerazione, se la maggiore complessità non supera le funzionalità aggiunte.

Certo. Basta ricostruire e testare che tutto funzioni.

È praticamente certo che, se fai questa domanda, non esiste una risposta che abbia senso per te.

Vuoi installare i plugin quando risolvono un problema, non installarli tutti e poi cercare di ripararli.

Per alcuni siti installo automaticamente set di plugin inclusi nei piani standard o business di cdck. Per molte persone, anche questo non è sempre una buona idea.

Quasi sicuramente non vuoi nessuno dei due plugin da me. Sono utili per una comunità molto specifica con esigenze bizzarre.

l’ho capito
in secondo luogo, voglio solo sapere cosa fanno nel caso in cui accada qualcosa; so che esiste una soluzione simile

Allora devi consultare l’argomento che li descrive, il file Readme del plugin o il codice stesso. Non ha senso chiedere “cosa fanno questi 50 plugin?”.

Hai frainteso.
Prima, hai detto di leggere la documentazione.
Secondo, si dovrebbe installare e verificare com’è davvero.
Questo è ciò che voglio fare.
Un semplice forum dove puoi vedere l’anteprima di tutti i plugin o temi disponibili attivandoli o disattivandoli. Al momento ci sono molte anteprime, ma non tutte, e nello stesso tempo non sappiamo se uno dei temi sia adatto.

Ci sono molti plugin che utilizzano la stessa rotta e possono causare conflitti. L’approccio migliore per installare un plugin è farlo solo se e quando senti che la tua comunità ha bisogno di una soluzione che Discourse non include nel core. Ho implementato circa due dozzine di comunità per i miei clienti e solo una mezza dozzina ha effettivamente optato per alcuni plugin, poiché il loro caso d’uso richiede qualcosa in più rispetto a quanto già incluso in Discourse. La maggior parte delle comunità ha bisogno solo di miglioramenti visivi, che possono quasi sempre essere ottenuti utilizzando i temi.

Sì, ho molti conflitti e non conosco molto bene Ruby, quindi mi è un po’ difficile leggere il codice. Mi chiedo quindi se esistano già plugin e temi con comprovata compatibilità tra loro, in modo da poter scegliere quando necessario. Questo risparmierebbe molto tempo ai partecipanti della community di Discourse.

La scelta più sicura quando cerchi la massima compatibilità aggiornata è utilizzare i plugin ufficiali, poiché sono spesso quelli testati per funzionare con Discourse da una base di utenti relativamente ampia e hanno maggiori probabilità di ricevere correzioni rapide in caso di problemi.

Conosco questo principio, ma a volte impedisce la crescita della nostra comunità.

Questo non è un plugin rilasciato e non è supportato. Si tratta semplicemente di un repository in lavorazione (WIP) in attesa di modifiche da parte di Apple. È ancora nella mia lista di cose da riprendere quando le condizioni lo permetteranno.
Se lo avessi rilasciato, ci sarebbe stato un argomento dedicato su come utilizzarlo.

I plugin di terze parti funzionanti hanno solitamente il proprio argomento nella categoria #plugin, che descrive come utilizzarli. Se questo manca, sarei molto cauto.

Come suggerito da Falco, dovresti iniziare con il software vanilla e aggiungere un plugin solo quando offre funzionalità che ti sono assolutamente necessarie e solo se, dalla sua cronologia, puoi dedurre che è ben supportato, poiché ogni aggiornamento rischia di impedire il corretto funzionamento del tuo sito.

Quindi, non ti consiglio di installare un plugin se:

  • non ha un argomento dedicato in #plugin che dichiari esplicitamente che è stato rilasciato
  • il suo argomento è stato spostato in #plugin:broken-plugin
  • non mostra commit recenti (che probabilmente rifletterebbero aggiornamenti per mantenere la compatibilità con Discourse o un supporto attivo per correggere bug)
  • non capisci cosa fa dal punto di vista funzionale.

L’aspettativa che l’aggiunta di più plugin possa in qualche modo creare una comunità di successo è, purtroppo, un errore molto comune.

Solo un pensiero. Potrebbe essere possibile eseguire solo i test?

spitball: un modo per installare i test dal repository senza installare ed eseguire il plugin?

Gli argomenti howto per l’installazione di sviluppo descrivono come eseguire i test e credo che tali test vengano eseguiti su tutti i plugin installati. Molti plugin non hanno test o potrebbero essere scritti in modo tale da causare il fallimento dei test se sono progettati per modificare il funzionamento di Discourse.

Inoltre, c’è (Superseded) Set up plugin continuous integration tests on Travis CI che ti consentirà di eseguire i test per un determinato plugin ad ogni commit.

Sarei interessato a sapere come far eseguire a Travis un test completo su un determinato insieme di plugin per confermare che non ci siano conflitti. Un giorno arriverò a creare un argomento su questo.

È certo che i test di tutti i plugin menzionati sopra falliranno e sapere che falliscono non sarà utile a nessuno.

Sì, la logistica è scoraggiante. Cos’è una permutazione, qualcosa come 2n dove n è il numero di valori individuali?

Comunque, anche solo con 30 addon, come risorsa “a priori”, ci sono più di un miliardo di combinazioni possibili. E questo per qualsiasi “istantanea” nel tempo, con ogni aggiornamento della versione che rende il tutto sempre più irrilevante.

Se invece come servizio “su richiesta”, non riesco a pensare a una buona interfaccia utente per presentare tutte le possibilità, e anche limitando severamente l’interfaccia si introdurrebbe un rischio di sicurezza se non si ha il controllo sui repository installati.

Non sto dicendo che sia impossibile o non fattibile. Non so quale modello di entrate e spese potrebbe funzionare.