我在一台 Docker 容器中运行 Discourse,这是一种非常标准的部署方式。
我很欣赏可以通过网页浏览器进行升级的功能,但我在想是否有办法订阅“稳定版”发布,而不是收到类似以下内容的升级通知:
2.5.0.beta7
是否可以等到 beta 版本发布完成,然后在 2.5.1 正式发布时再让我升级?
我在一台 Docker 容器中运行 Discourse,这是一种非常标准的部署方式。
我很欣赏可以通过网页浏览器进行升级的功能,但我在想是否有办法订阅“稳定版”发布,而不是收到类似以下内容的升级通知:
是否可以等到 beta 版本发布完成,然后在 2.5.1 正式发布时再让我升级?
您可以编辑 app.yml 文件,将其指向稳定分支(stable)。需要编辑的行是 version,其默认值为 version: tests-passed。
请注意,这意味着您需要等待数月才能进行更新,同时也意味着您将不得不更长时间地忍受该版本中存在的任何错误。
请注意,只有在发布新的主要稳定版本(例如 2.5.0)后,才能从 beta / tests-passed 切换到 stable。现在从 tests-passed 切换到 stable 属于降级,不受支持。
如果某个问题非常关键,难道不会将修复向后移植吗?我本以为如果是关键问题,应该会得到修复。难道情况并非如此吗?
我也遇到过不少在测试频道中引入的漏洞。因此,我假设当您发布新版本时,已经进行了一些合理性检查,以确保一切正常并按预期运行,然后再推进到 2.5.1 版本。
@RGJ,感谢您的信息。等下一个 Discourse 版本发布后,我会将其固定下来。
是的,安全修复通常会向后移植。严重(例如导致 Discourse 无法使用的阻塞性)漏洞也会被向后移植。但许多不太严重的漏洞可能不会。向后移植本身存在风险,可能会意外引入回归问题,还会迫使使用稳定版的用户进行更新,等等。
我们的一般建议是,站点应遵循 tests-passed 分支(这是默认设置),并在有新版本(beta)发布时进行更新。在某些情况下,稳定版可能是推荐的选择,例如使用了复杂插件并覆盖了核心模板的站点。但对于标准的 Docker 安装站点,请坚持使用 tests-passed。虽然软件行业中“beta”一词往往让人联想到“会有漏洞”,但这并非我们的本意。Discourse 的所有版本,包括 tests-passed、beta、stable 等,都包含漏洞。
如果你在 tests-passed 上发现漏洞并报告,很有可能在几天内得到修复,你可以通过更新来消除该漏洞。你可能会遇到更多(独特的)漏洞,但它们会被迅速修复。至于稳定版,正如 Kris 提到的,在 4 到 6 个月的发布周期内,你不应该看到任何新漏洞,但你遇到的任何漏洞在下一个稳定版发布之前都不会消失。在任何给定时间,你拥有的漏洞数量可能比在 tests-passed 上更多,因为它们不会被修补,但这些漏洞应该是相对固定的。
大多数网站似乎都在运行测试通过的版本,这是有充分理由的:团队正在积极开发产品,而在此阶段他们能做出最快速的响应。
如果您遇到问题,我建议您审查发布流程,而不是回退到稳定版。
集成或预发布副本将允许您在将更新部署到生产环境之前主动进行测试,而不会使您落后数周或数月。
就热门的 Pavilion 插件(TLP、CW、QnA、Events、Follow、Ratings、Locations 等)而言,我们目前跟踪的是 tests-passed 分支,这主要是因为它是默认安装选项,对普通用户来说更不容易产生混淆。因此,这些插件目前大多与稳定版(Stable)不兼容,这主要归因于 Discourse 核心开发速度极快,迭代令人印象深刻。
我们将持续关注此情况,若资源允许,可能会支持更多分支,或者 Discourse 开始在另一个分支上提供默认安装。因此,目前如果您打算使用我们的插件,请继续使用 tests-passed 分支。