我们尽力通过几篇博文([1][2])让您保持娱乐。但现在冲刺已经结束,是时候发布一份新报告了。

修复低优先级错误

采用 Scrum 的主要原因之一是确保我们充分利用开发资源(即开发人员的时间和大脑),专注于能为用户带来更多价值的事情。过去,我们总觉得很多重要的事情总是被推迟,因为开发人员被其他不太重要的事情淹没了。现在这种感觉已经消失(在很大程度上),我们对开发工作的方向有了更清晰和共同的认识。

但总是有缺点。我们积累了相当多的未解决的低优先级错误。这是预期的结果,但仍然感觉不对劲。一方面,这让我们感到不舒服——经常回复“这必须等待”并不好,即使是为了更大的目标。另一方面,大量的低优先级事项影响了 Bugzilla 上的信噪比,使得区分重要事项变得更加困难。

到目前为止,处理这些低优先级错误是每个开发人员在 Scrum 专用时间允许的情况下自行完成的事情。在冲刺 26 中,我们决定将这项工作作为流程的明确部分,并投入相当多的冲刺时间来完成它。结果,我们关闭或重新分配了总共 135 个停留在我们列表中的错误。

是的,您没看错。一百三十五个错误。

存储重构:我们的测试 ISO 已经可以销毁您的数据

在上一个冲刺中,我们已经展示了安装程序使用新的存储堆栈来计算分区建议的截图。现在安装程序可以更进一步。正如您在此动画中所看到的,更改现在已提交到磁盘,这意味着系统实际上已被分区、格式化和安装。

Installation with the new storage stack

该过程在安装软件后中断,尝试配置和安装引导加载程序时。这是预期的,因为 yast2-bootloader 尚未适应使用新的堆栈。首先,因为我们想为冲刺 27 留下一些乐趣。但也是因为我们在这个冲刺(26)中记录了 yast2-bootloader 与新存储堆栈相关的所有要求。现在我们已经具备了制作可安装 ISO 的所有要素。

自动更新翻译文件

最近,openSUSE 已经采用了 Weblate 来执行和协调软件和项目网页的翻译。 openSUSE 的 Weblate 实例 允许每个人(从专门的翻译人员到休闲贡献者)参与该过程,并能够协调 openSUSE 与 SUSE Enterprise Linux 的翻译,从而促进两个项目的翻译人员之间的协作。

作为 YaST 开发人员,确保 openSUSE 的 Weblate 始终包含最新的英文字符串以供翻译当然是我们的责任。有时让我们的开发人员的生活更轻松不仅对我们自己有好处,对我们的用户也有好处。到目前为止,每次代码更改后,我们都必须记住为每个添加或更改的英文文本触发翻译过程。有时我们不够快,以至于一些英文残留物会保留在我们的 YaST 中,而 YaST 在 20 种通常 100% 完成翻译的语言中使用。

现在我们终于设置了一个 Jenkins 作业来自动执行代码更改后的翻译更新过程。这为开发人员节省了一些工作,并使翻译更新更加快速。

查看 Weblate 数字,您会看到我们有 20 种语言翻译了大约 100%,另外 20 种语言翻译了超过 75%,37 种语言翻译了不到 75%。因此,我们仍然需要一些帮助才能将所有语言的覆盖率提高到 100%。如果您愿意贡献,为什么不加入我们的翻译团队呢?请查看 本地化指南 以联系您首选语言的协调员,了解如何通过翻译、评论或任何其他方式做出贡献。

确保安装启动所需的软件包

我们收到了一些报告,称在用户自定义要安装的软件包列表的情况下,系统在安装后无法正常工作。这是因为,虽然 YaST 的引导加载程序组件预先选择了所有需要安装的软件包,但用户可以覆盖该选择并手动禁用这些软件包的安装。

为了防止这种情况,或者至少提高对这种情况的认识,安装程序现在会在摘要屏幕(安装前的最后一步)中发出警报,如果缺少某些必需的软件包,如以下屏幕截图所示。我们仍然允许用户自寻死路,但现在我们会明确警告他们。

Warning about de-selected Grub2 package

改进低视力可访问性

在此冲刺期间,我们一直在努力使 (open)SUSE 安装程序可供视力低下的人使用。我们已经 在博客上写过,寻求反馈。

One of the new color modes available in the installer

在几天内,一些更改将登陆 Tumbleweed

  • 替代样式选择(颜色和字体大小)。目前,我们提供四种选项:默认(无更改)、高对比度(青色/绿色/白色/黑色)、白色背景黑色文字和青色背景黑色文字。这些样式只是一个概念验证,用于测试代码更改,更重要的是,获取您的反馈。
  • 一个 长期存在的问题,阻止在安装期间切换到高对比度模式(shift+F4),已被修复。

Style selection at the beginning of installation

虽然我们已经取得了一些进展,但这仍然是一项持续的努力,我们希望在未来几周内发布更多改进。

从损坏的引导加载程序配置中恢复

在某些情况下,YaST 引导加载程序无法读取系统配置。例如,当 Grub2 最初使用的 udev 设备不再可用时。过去,这会导致 YaST 崩溃,需要手动修复引导加载程序配置文件。现在 YaST 可以正确检测到这种情况,并提供使用正确的设备提出新配置的选项。

YaST bootloader fixing a broken configuration

默认禁用本地媒体中的自动刷新

我们更改了 YaST 添加的新存储库的默认自动刷新标志。过去,自动刷新针对所有存储库启用,除了 CD/DVD 媒体和 ISO 文件。

使用新的默认设置,自动刷新仅针对远程存储库(如 http、ftp、nfs 等)启用。原因是某些本地存储库可能并非始终可用(例如,外部硬盘驱动器、USB 闪存驱动器),并且自动刷新可能会在启动包管理器时导致难看的错误。

当然,如果您需要不同的值,可以在添加存储库后手动更改自动刷新标志。

注意:默认值仅在 Tumbleweed 发行版中更改,Leap 42.2 或 SLE-12-SP2 保持旧默认值。zypper 的行为也没有改变,默认情况下它会禁用所有存储库的自动刷新。只有从 .repo 文件导入的存储库才会启用自动刷新。有关更多详细信息,请参阅 man zypper

网络桥接处理方面的诸多改进

YaST 网络是用于网络配置的瑞士军刀,涵盖了路由、绑定、桥接和许多其他方面的管理。但坦率地说,桥接的管理并不是最好的状态。它存在相当多的可用性问题,并且与 (open)SUSE 中 Wicked 目前管理桥接的方式并不完全一致。直到现在!

拉取请求 包含几个屏幕截图和动画,试图总结在此冲刺期间所做的所有更改。例如,将旧的配置文件适应到新的约定,或统一 UI 以使其与管理绑定的 UI 一致。

Revamped YaST interface for handling bridges

此次改造还包括许多可用性改进

  • NONE 显示在旧桥接配置中而不是 0.0.0.0。
  • 桥接主设备显示在从属接口中。
  • 修改桥接后更新接口概述。

优化读取 hosts 文件

有报告称 yast2-network 在包含大量条目的 /etc/hosts 文件中运行缓慢。我们将其视为一个机会来测试 YaST 中的新分析器支持。分析器显示问题在于 SCR(YaST 传统上用于与底层系统交互的层)中的一些缓慢调用……这听起来是另一个机会。这次是扩展我们正在开发的 CFA(用于稳定替换 SCR)及其 Augeas 解析器的使用机会。由于 Augeas 已经支持解析 /etc/hosts 文件,因此将其实现到 YaST 中非常简单……结果非常令人印象深刻。

在包含大约 10,000 个条目的巨大 /etc/hosts 文件(我们知道这是一个极端情况)的系统上执行下一个命令所需的时间从 75 秒减少到仅 20 秒。

yast2 lan list

正如您在 此拉取请求 中看到的那样,我们还改进了 CFA 本身,大大减少了使用 Augeas 读取配置文件所需的时间。

就这些了……直到下次报告

再次声明,我们必须总结报告,说明这只是冲刺期间完成的所有工作的简短摘要,我们将在三周后发布下一份报告。或者也许更早,因为我们现在开始习惯于更频繁地写博客。

无论如何,很快再见,别忘了玩得开心!