我们不小心发布了一个更改设置解析的代码,导致 Zed 中的自动更新功能失效。
如果您正在使用这些版本之一并且尚未手动更新 Zed,则需要:
- 打开 Zed
- 打开命令面板(macOS 上是 cmd+shift+p,Linux 上是 ctrl-shift-p)
- 运行“auto update: check”(自动更新:检查)
- 更新后,自动更新将恢复正常

您也可以手动下载最新版本。
这是如何发生的?
我们有一个相对复杂的设置系统,允许从各种不同的地方读取设置。例如,您的用户设置、项目设置、扩展设置,以及最终的备用默认设置文件。
目前,要更改 Zed 设置,您必须手动编辑这些 JSON 文件。这对于高级用户来说很棒,但它使得发现可用设置变得困难,并且很容易因为 JSON 中逗号或引号的错误而破坏您的设置。
我们正在努力构建一个 UI,让您无需编写 JSON 即可更改大多数设置。作为其中的一部分,我们希望简化加载设置的代码。
如果您想发现这个错误,差异链接在此处:这里。
如果没有,我们将类型从 Option<bool> 更改为 bool。在用户的设置文件中不存在自动更新设置(通常不存在)的情况下,它没有回退到默认设置文件中的值,而是表现得好像您已明确将其设置为 false。
我们怎么没注意到?
通常,当 Zed 中出现问题时,我们会在它们到达稳定版之前发现它们。我们有自动化测试,涵盖了大多数重要功能。整个团队都运行最新的 Nightly 构建,并且大多数问题都在那里被发现。偶尔会出现一些错误到达预览版,预览版由我们大约 5% 的用户群运行,他们会报告问题,这样我们就可以在问题到达稳定版之前修复它。
Nightly 方法的缺点是,对于我们不考虑的行为(例如自动更新),很难注意到它们是否已损坏。
在这种情况下,特别令人沮丧的是,我们实际上在发布到稳定版之前几个小时就发现了问题

不幸的是,由于 Slack 信息量大,以及我们工作所在的时区范围,此消息未能传达给负责发布的人员。🤦
我们已经做了什么
- 我们的首要任务是让所有用户摆脱有问题的版本。我们向与我们分享电子邮件地址的用户发送了电子邮件,并在我们所有的社交媒体上发布了通知。如果您尚未更新,请务必更新!
- 我们还添加了一个测试,以确保如果
auto_update的默认值再次被意外设置为false,CI 将不会通过。几乎任何其他类型的故障都可以通过向前发布来恢复,但如果自动更新被破坏,我们甚至无法做到这一点...
我们接下来会怎么做
- 改进通过我们现有升级渠道标记潜在回归的过程。我们有一个
@first-respondersSlack 别名,它会通知负责处理升级的两名人员(在该给定周内)。 - 深入研究简化我们的设置代码。读取布尔值不应该需要 10 行密集的 Rust 代码。
很抱歉造成了此次中断!