Verifique a validade do plugin ou tema

Reuni cerca de 200 repositórios do GitHub para plugins e temas do Discourse. Existe alguma maneira de verificar a compatibilidade com a versão mais recente do 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

Primeiro, muitos deles são temas e não devem ser instalados via o arquivo app.yml.

Segundo, você não deve instalar nenhum plugin no Discourse por padrão. Tudo o que você precisa para ter um fórum de discussão já vem incluído no software principal. Os plugins devem ser adicionados apenas após uma consideração cuidadosa, se a complexidade aumentada superar os recursos adicionados.

Claro. Basta reconstruir e testar se todos funcionam.

Na verdade, se você está fazendo essa pergunta, não há realmente uma resposta que faça sentido para você.

Você deve instalar plugins apenas quando eles resolvem um problema, não instalar tudo e depois tentar corrigi-los.

Para alguns sites, instalo automaticamente conjuntos de plugins incluídos nos planos padrão e empresariais do cdck. Para muitas pessoas, mesmo isso nem sempre é uma boa ideia.

Você quase certamente não quer nenhum dos dois plugins meus. Eles são úteis apenas para uma comunidade muito específica com necessidades bizarras.

Entendi.
Segundo, só quero saber o que eles fazem no caso de algo acontecer. Sei que existe uma solução similar.

Então, você precisa consultar o tópico que os descreve, o README do plugin ou o próprio código. Não faz sentido perguntar “o que esses 50 plugins fazem?”.

Você me entendeu mal.

O primeiro ponto é sobre o que você disse para ler a documentação.
O segundo deveria ser instalar e verificar como realmente é.
É isso que quero fazer: um fórum simples onde você possa ver a prévia de todos os plugins ou temas disponíveis, ativando ou desativando-os. No momento, quase todos têm pré-visualizações, mas não todos, e ao mesmo tempo não sabemos se um dos temas se adequa.

Existem muitos plugins que utilizam a mesma rota e podem causar conflitos. A melhor abordagem para instalar um plugin é fazê-lo apenas se e quando você sentir que sua comunidade precisa de uma solução que o Discourse não oferece nativamente no núcleo. Implementei cerca de duas dúzias de comunidades para meus clientes, e apenas meia dúzia realmente optou por alguns plugins, já que seus casos de uso exigem algo além do que já está disponível no Discourse. A maioria das comunidades só precisa de melhorias visuais, que quase sempre podem ser alcançadas usando temas.

Sim, tenho muitos conflitos e não domino muito Ruby e reluto bastante em ler código. Então, gostaria de saber se já existe compatibilidade comprovada entre plugins e temas entre eles. Quando houver uma necessidade, você pode escolher, o que economiza muito tempo para os participantes da comunidade do Discourse.

A escolha mais segura quando você está procurando pela compatibilidade mais atualizada é usar plugins oficiais, pois são frequentemente testados para funcionar com o Discourse por uma base de usuários relativamente grande e têm maior probabilidade de receber correções rápidas caso algo dê errado.

Eu conheço esse princípio, mas ele às vezes impede o crescimento da nossa comunidade.

Este não é um plugin lançado e não é suportado. Este é apenas um repositório em andamento (WIP) aguardando alterações da Apple. Ainda está na minha lista para retomar quando as condições permitirem.
Se eu o tivesse lançado, haveria um tópico dedicado sobre como usá-lo.

Plugins de terceiros que funcionam normalmente possuem seu próprio tópico na categoria #plugin, descrevendo como utilizá-los. Se isso estiver faltando, eu ficaria muito cauteloso.

Como dito por Falco, você deve começar com o software vanilla e adicionar um plugin apenas quando ele oferecer recursos que você realmente precisa, e somente se sua história indicar que ele é bem suportado, já que cada atualização corre o risco de impedir que seu site funcione corretamente.

Portanto, eu não recomendaria instalar um plugin se:

  • ele não tiver um tópico dedicado em #plugin afirmando explicitamente que foi lançado;
  • seu tópico foi movido para #plugin:broken-plugin;
  • ele não mostrar commits recentes (que provavelmente refletiriam atualizações para manter a compatibilidade com o Discourse ou suporte ativo para corrigir bugs);
  • você não entender o que ele faz funcionalmente.

A expectativa de que adicionar mais plugins de alguma forma criará uma comunidade bem-sucedida é, infelizmente, um equívoco muito comum.

Só um pensamento. Seria possível rodar apenas os testes?

spitball: uma forma de instalar os testes do repositório sem instalar e rodar o plugin?

Os tópicos howto de instalação para desenvolvimento descrevem como executar os testes e acredito que esses testes serão executados em todos os plugins instalados. Muitos plugins não possuem testes ou podem ser escritos de forma que causem falhas nos testes se forem projetados para alterar o funcionamento do Discourse.

Além disso, há (Superseded) Set up plugin continuous integration tests on Travis CI, que permite executar testes para um plugin específico a cada commit.

Gostaria de saber como configurar o Travis para executar um teste completo em um conjunto específico de plugins, a fim de confirmar que não há conflitos. Um dia vou criar um tópico sobre isso.

É certo que os testes de todos os plugins mencionados acima falharão, e saber que falham não será útil para ninguém.

Sim, a logística é desafiadora. O que é uma permutação, algo como 2n, onde n é o número de valores individuais?

De qualquer forma, mesmo como um recurso “com antecedência”, apenas com 30 complementos existem mais de um bilhão de combinações possíveis. E isso para qualquer “instantâneo” no tempo, com cada mudança de versão tornando a questão cada vez mais irrelevante.

Se for como um serviço “sob demanda”, não consigo imaginar uma boa interface de usuário para apresentar todas as possibilidades, e até mesmo limitar severamente a interface introduziria um risco de segurança se não houver controle sobre quais repositórios estão instalados.

Não estou dizendo que seja impossível ou inviável. Não sei qual modelo de receita e despesas poderia funcionar.