检查插件或主题的有效性

我收集了大约 200 个 Discourse 插件/主题的 GitHub 仓库,有什么方法可以检查它们与最新 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

1 个赞

首先,其中很多是主题,不应通过 app.yml 文件安装。

其次,默认情况下不应在 Discourse 中安装任何插件。构建讨论论坛所需的一切功能都已包含在主软件中。只有在经过仔细权衡,确认增加的功能带来的价值超过其引入的复杂性时,才应添加插件。

9 个赞

当然有。只需重新构建并测试它们是否都能正常工作即可。

基本上,如果你问这个问题,那么很难提供一个对你有意义的答案。

你应该在插件能解决问题时才安装它们,而不是安装所有插件然后再试图修复它们。

对于某些站点,我会自动安装包含在 cdck 标准版或商业版计划中的插件集。但对许多人来说,即使这样做也不总是个好主意。

你几乎肯定不需要我提供的这两个插件。它们仅对具有特殊需求的特定社区有用。

2 个赞

我明白了
第二个问题,我只是想了解他们遇到这种情况时会怎么做。我知道有类似的解决方案。

那你需要查看介绍这些插件的主题、插件的 README 文档,或者直接查看代码本身。直接问“这 50 个插件都是做什么的?”是没有意义的。

你误会我了。
首先是你提到的阅读文档,
其次应该是安装并查看实际效果。
这正是我想做的:一个简洁的论坛,你可以通过启用或禁用来查看所有可用插件或主题的预览。目前大部分已有预览,但并非全部;同时,我们也无法确定某个主题是否合适。

有许多插件使用相同的路线,可能会导致冲突。安装插件的最佳做法是:只有在你认为你的社区需要 Discourse 核心未提供的解决方案时,才进行安装。我为客户部署了大约 24 个社区,其中只有大约 6 个真正选择了一些插件,因为它们的使用场景需要超出 Discourse 核心已提供功能的内容。大多数社区只需要视觉增强,而这几乎总是可以通过使用主题来实现。

1 个赞

是的,我确实遇到了很多冲突,而且我对 Ruby 不太熟悉,也不太愿意阅读代码。因此我想知道,当你们有需求时,是否已经有经过验证的插件和主题兼容性方案可供选择?这确实能为 Discourse 社区的参与者节省大量时间。

如果您在寻找最新的兼容性,最安全的选择是使用官方插件。这些插件通常经过大量用户群体的测试,确保与 Discourse 兼容,并且在出现问题时更有可能快速获得修复。

我确实了解这一原则,但它有时会阻碍我们社区的发展。

这并非已发布的插件,也不受支持。这只是一个等待 Apple 提供变更的工作中的仓库(WIP)。只要条件允许,我仍计划继续推进它。

如果我已经发布它,会有一个专门的帖子说明如何使用。

正常运作的第三方插件通常会在 #plugin 分类下拥有自己的帖子,描述其使用方法。如果缺少这样的帖子,我会非常警惕。

正如 Falco 所说,你应该从原生软件开始,只有当某个插件提供了你绝对必需的功能,并且从其历史记录可以看出它得到了良好支持时,才考虑安装它,因为每次升级都可能影响你网站的正常运行。

因此,如果存在以下情况,我不建议你安装该插件:

  • 它在 #plugin 中没有明确声明已发布的专属帖子
  • 其帖子已被移至 #plugin:broken-plugin
  • 它没有显示最近的提交记录(这些提交通常反映为与 Discourse 保持兼容性的更新,或积极修复问题的支持)
  • 你无法理解它的功能作用。
3 个赞

指望通过添加更多插件就能成功建立社区,不幸的是,这是一个非常普遍的误解。

4 个赞

只是有个想法。是否可能只运行测试?

随意发挥:一种从仓库安装测试但不安装和运行插件的方法?

1 个赞

开发安装指南主题描述了如何运行测试,我相信这些测试会针对所有已安装的插件运行。许多插件没有测试,或者其编写方式可能导致测试失败,如果它们的设计意图是改变 Discourse 的工作方式。

此外,还有 https://meta.discourse.org/t/setting-up-plugin-continuous-integration-tests-on-travis-ci/59612,它允许你在每次提交时为特定插件运行测试。

我很想知道如何让 Travis 对一组特定插件运行完整测试,以确认是否存在冲突。总有一天我会专门创建一个关于这个话题的帖子。

可以肯定的是,上述所有插件的测试将会失败,而知道它们失败对任何人都没有用处。

2 个赞

是的,物流方面的挑战确实令人望而生畏。所谓的排列,是不是类似于 2n,其中 n 是独立值的数量?

无论如何,如果将其作为一种“预先准备”的资源,即使只有 30 个附加组件,可能的组合也超过十亿种。而且这是针对任意一个“时间点”的快照而言的,随着每次版本更新,这些组合的有效性会逐渐降低。

如果作为一种“按需”服务,我实在想不出一个合适的用户界面来呈现所有可能性。即使大幅简化界面,如果无法控制已安装的资源库,也会引入安全风险。

我并不是说这不可能或不可行。我只是不清楚什么样的收入和支出模式可能行得通。

2 个赞