介绍即将到来的更改,一个用于管理社区中新功能和现有功能变更的系统

随着我们不断改进 Discourse,我们创建了一个新的“即将进行的更改”配置页面,以帮助管理员了解即将对 Discourse 进行的更改,并让他们管理如何在社区中实施这些更改。我们相信这个系统将帮助我们以安全、透明的方式持续改进 Discourse。

在本主题中,我们将解释这个新系统的工作原理以及如何使用它来安全地向您的社区引入新功能和其他更改。

“即将进行的更改”工作原理概述

当我们处理新功能或其他更改时,我们会将其添加到位于 /admin/config/upcoming-changes 的“即将进行的更改”配置页面。每项更改都将包括描述、状态、受影响用户指示器以及您的社区中哪些用户(如果有)已启用该更改。

根据更改的状态,您可以决定是否为您的社区启用或禁用该更改——至少是暂时性的,因为某些更改最终将永久启用。

暂时禁用更改可以为您提供时间来处理任何受影响的站点自定义、流程等,告知您的会员有关更改的信息,或为特定会员组授权进行测试。

剖析“即将进行的更改”

让我们剖析一下“即将进行的更改”,并定义您将在每个部分中看到的信息。

1 - 名称和描述

名称和描述为您提供更改的简要说明,并且通常会链接到相关内容(例如 Meta 主题)以获取更多详细信息。

2 - 状态

状态传达了它在开发生命周期中的位置。状态直接影响更改是选择加入(即默认关闭,但您可以打开它)、选择退出(即默认开启,但您可以关闭它)还是强制开启(即开启,且您无法关闭它)。

我们在“即将进行的更改”中使用以下状态:

  • Experimental(实验性):一个潜在的更改,处于早期开发/测试阶段,预计会快速演变,或者如果实验结束(届时它将变为 Inactive 状态;见下文),它可能会被移除。您可以选择加入 Experimental 更改以进行测试。
  • Alpha(阿尔法版):一个经过测试且可以安全使用的更改,尽管其设计或功能可能仍有一些小的更新。您可以选择加入 Alpha 更改以提前使用它们。
  • Beta(测试版):一个经过测试且可以安全使用的更改,在变为 Stable(稳定版)或可能 Permanent(永久性)状态之前,其变化可能不大。对于大多数站点,Beta 更改自动为所有人开启(如果您之前没有启用它),但您仍然可以选择退出
  • Stable(稳定版):一个已完成的更改[1] ,但仍然是选择退出(即管理员可以禁用它)。如果管理员禁用了 Stable 更改,他们的仪表板上将收到警告。
  • Permanent(永久性):一个已完成测试的更改,并且强制开启(即管理员无法禁用它)。
  • Inactive(非活动):一个被放弃的实验。您无法选择加入

有时,更改会在线性地通过这些状态(即从 Experimental 开始并以 Permanent 结束),但并非总是如此。某些更改可能会以 AlphaBeta 状态引入,而某些更改将以 Stable 状态结束(如果它们不会被强制开启)。

特定更改从一个状态进展到另一个状态没有固定的时间,但管理员将在以下情况下收到通知:

  • 有一项新的更改可供试用
  • 更改已自动启用
  • 当您禁用了即将强制开启的更改时

3 - 受影响的用户

“受影响的用户”标签描述了您社区中哪些用户可以看到或以某种方式与该更改进行交互。简单来说,谁可能会注意到这个更改?有几种类型的受影响用户:

  • Admins(管理员):更改仅对管理员可见。
  • Staff(员工):更改仅对管理员版主可见。
  • All members(所有成员):更改对您站点上的所有成员可见。
  • Developers(开发人员):在极少数情况下,更改仅对那些与核心、主题或插件中的代码进行交互的人可见。

4 - 启用对象…

此下拉菜单是您(作为站点管理员)可以控制是否以及如何通过向以下对象启用此更改来向您的社区引入此更改:

  • No one(无人):禁用该更改对站点上的所有人。
  • Everyone(所有人):为站点上的所有人启用该更改,包括匿名用户。当更改自动开启时(通常在 Beta 状态),它将针对 Everyone
  • Staff only(仅限员工):为站点员工(即管理员和版主)启用该更改。
  • Specific groups(特定组):为选定的组启用该更改。

目前,我们已将大多数 Experimental 更改从 /admin/config/experimental 移至“即将进行的更改”,您很快就会开始看到新的更新在此处着陆。我们期待听到这对您的社区产生的影响,并欢迎任何问题或反馈!


  1. 就任何软件而言,软件都是完成的! ↩︎

17 个赞

我很好奇——它如何控制功能推出的方式?功能引入后可以更改吗?谢谢。

1 个赞

原生功能标志!太棒了 :clap:

很高兴能有一个用于插件的 API。

1 个赞

这是一个期待已久的功能!谢谢!

1 个赞

这太棒了,能够像这样更改标志对于像我这样走在最前沿的人来说非常棒,尤其是在开发主题时

不过,“即将进行的更改”真的是最好的名称吗?例如,HomeAssistant 使用“labs”(实验室),而许多其他人只是使用“experiments”(实验)之类的名称,感觉比“upcoming changes”(即将进行的更改)更好。

当新功能处于您可以提前试用(选择加入)并暂时关闭以修复更改引起的任何问题(选择退出)的状态时,您将收到通知。如果某个更改将变为“永久”(意味着您不能选择退出),并且您当前已将其关闭,我们会通知您。

本节对此进行了更详细的描述:

目前,您只看到了实验性更改,因为我们已将那些更改从设置区域迁移到“即将进行的更改”,但将来这里也会有非实验性的更新。因此,对于我们使用此系统的方式来说,“实验室”感觉不太准确。

1 个赞