将更多热门插件与 Discourse 核心打包

如果错误提示 reactionsdata explorersolved 仍然在您的 yml 文件中,那么它们很可能确实还在。如果您认为您已将它们注释掉,是否可能是输入了两次?

绝对值得检查一下配置,并确保您编辑的是与您的站点对应的 yml 文件。

1 个赞

您好

我已经成功将我的论坛升级到最新的 3.4.6 stable 版本。在此之前,我使用的是独立的 discourse-oauth2-basic 插件进行身份验证。

/admin/plugins 中没有 Oauth2 Basic 登录选项。

我的 discourse 版本是 3.4.6。

提示:插件 ‘discourse-oauth2-basic’ 现在已与 Discourse 捆绑,不应包含在您的容器配置中。
从您的 containers/app.yml 文件中删除 ‘git clone GitHub - discourse/discourse-oauth2-basic: A basic OAuth2 plugin for use with Discourse’ 行,然后重试。
有关更多信息,请参阅 Bundling more popular plugins with Discourse core

我必须在升级到 3.4.6 之前删除插件 discourse-oauth2-basic

您能否帮助我理解可能出了什么问题?

  • 是我误解了这个过程,插件仍然是必需的吗?
  • 在删除插件后,我是否遗漏了启用核心 OAuth2 功能的额外步骤?
  • 或者我只是在错误的地方寻找设置?

谢谢!

1 个赞

嗯……会不会是因为你在用稳定版?

在遵循系统提示后,我删除了 discourse-oauth2-basic 插件,并成功升级到了 3.4.6 稳定版

但是,我现在发现管理员仪表板中缺少 OAuth 2 Basic 的配置选项。

1 个赞

如果您使用的是稳定版,那么在八月初的下一个稳定版发布之前,本主题中的任何内容都将不适用。因此,您应该将 oauth2-basic 添加回您的 app.yml。原始失败肯定有其他原因。

不幸的是,“提示”逻辑并不智能,也不知道稳定版与 tests-passed 之间的区别。

5 个赞

我也是,但我们对此无能为力,对吧?哈哈。我认为更多的原生资源(即插件),即使被禁用,也不是帮助初学者进行自我托管的好方法。

2 个赞

@nat 看看这个,我的引言翻译和我的回复

3 个赞

无论我如何尝试注释掉插件部分中的克隆行,它都会将这些行读取为我想安装插件。我做了什么?删除该行,最后成功了。

升级时,您需要检查 Discourse 核心中包含的插件列表,以避免在插件部分中添加它们以安装或删除 app.yml 文件中的该行。

2 个赞

我认为,由于这些是预先安装的,应该有选项将它们与已安装列表分开。已安装列表是可删除的,而这些只能被禁用。

也许核心合并插件应该放在“精选插件”之类的下面。或者核心插件。

当然,也许还有一个“全部”过滤器。

2 个赞

他们的建议并非理想,但确实可行。 示例:

## 插件放在这里
## 参见 https://meta.discourse.org/t/19157 获取详细信息
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/pfaffman/discourse-allow-pm-to-staff.git
          #- git clone https://github.com/discourse/discourse-hcaptcha.git
          #- git clone https://github.com/discourse/discourse-calendar.git
          - rm -rf discourse-adplugin
          - rm -rf discourse-affiliate
          - rm -rf discourse-ai
          - rm -rf discourse-apple-auth
          - rm -rf discourse-assign
          - rm -rf discourse-login-with-amazon
          - rm -rf discourse-lti
          - rm -rf discourse-microsoft-auth
          - rm -rf discourse-patreon
          - rm -rf discourse-subscriptions
          - rm -rf discourse-zendesk-plugin

(根据需要调整)

6 个赞

7 个帖子已拆分为新主题:Troubleshooting bootstrap failures in Discourse

现实情况是,稳定版分支 就是 LTS,而且相当不错。它会接收安全更新,而且(得益于 .discourse-compatibility 文件)可以清楚地知道哪些插件版本与之兼容。我完全承认,这一切开始正常工作花了很长时间,但在过去的两年左右,它已经做到了——这是团队的一项伟大成就。

现在是关于你陈述的第二部分。确实,“stable”经常被描绘成你不想要的东西。但在 Communiteq 托管上,在过去的两年半里,我们一直为客户提供在稳定版(“稳定性优先,每年两次新更新,每月一次安全更新”)和测试通过版(“始终走在前沿,每月一次新功能”)之间免费选择的选项,并且 85% 的客户选择稳定版

我明白。但这难道不是开发问题而不是生产问题吗?我完全理解你们在开发中这样做。但是,在默认的生产安装中添加这些插件,在某种程度上违背了拥有一个 插件(根据定义,它不是默认的)的想法。
我看到的唯一实际的生产效益是关于 卸载插件和多站点主机 的非常非常边缘的问题。(再说一遍,这是件好事,所有其他生产问题都已随着时间得到解决!)

这也可以在设置脚本中解决,通过显示一个插件列表,用户可以勾选它们,然后将它们添加到 app.yml 中。

但你们仍然为不同的套餐提供不同(子)集插件,对吗?

6 个赞

我也更倾向于 app.yml 的取消注释方法。

1 个赞

所有这些插件都安装在我们的所有自助服务套餐上。有些套餐没有访问权限,但即使没有访问权限,它们仍然会安装。


我们不会改变这个决定,所以人们只能接受。我知道有些人对此感到不满,有些人反对,但这确实不会改变。

这使我们在开发过程中具有速度优势,它定义了我们的偏好,它确保了绝大多数人使用的 Discourse 更加稳定。

还有其他插件……核心插件并非唯一的插件。

5 个赞

一个帖子被拆分到一个新主题:Discourse 不提供 LTS 版本

我完全同意将流行的插件及其功能移入核心镜像是有意义的。特别是如果它们来自与核心本身相同的编码器(CDCK)。即使对于其他软件项目来说,这也是常见的做法。但我们应该解决引导问题——我仍然乐观 :sunny:

1 个赞

这就是你无法重建的原因。

这绝对是更好的方法。仍然可以使用上一篇文章中的移除插件代码来实现。

将此添加到安装脚本中,可以提供更好的开箱即用选项,并且在程序中很常见,允许您选择是否安装某些可选功能。

可比性文件很棒。不过,我个人认为应该在主题中添加可比性信息。提供链接或说明,以了解 TC/插件是否同时适用于 Stable 和 Tests-passed 的安装说明。

1 个赞

感谢指南;除了“automation”插件外,其他插件都运行良好,但“automation”插件似乎无法删除,因为聊天插件依赖于它。

1 个赞

自动化插件确实不应该被移除。它有很多有用的潜在用途。我认为需要投入更多时间来获得更多的自动化选项。

但是,是的,通过移除插件来清理是个好主意,正如 @RGJ 指出的那样,最近真正多余的插件合并后,可以质疑是否需要安装这些选项。甚至可以有一个独立的脚本在安装后使用,以便为自托管用户提供更友好的体验,这样一些可能想避免编辑 app.yml 的用户就可以不用编辑了。