YaST 团队在上周完成了又一次开发冲刺,我们想借此机会让大家一窥引擎室,看看正在发生什么。
今天,我们将坦白一个关于我们如何管理 Qt 用户界面的一些不舒服的真相,向您展示我们如何组织工作(或者至少,我们如何尝试控制其管理部分),并让您提前了解一些即将推出的 YaST 功能和改进。
让我们开始吧!
此处有龙:YaST Qt UI 事件处理
YaST Qt UI 在使用 Qt 的方式上有所不同。正常的 Qt 应用程序围绕一个简短的主程序展开,该程序在初始化小部件后将控制权传递给 Qt 事件循环。但 YaST 并非如此:它主要是一个解释器,用于执行脚本(今天使用 Ruby,过去使用 YCP),这些脚本用于业务逻辑。这些脚本在创建和销毁小部件树的同时,也控制着流程。但控制流在脚本中,而不是在 Qt 事件循环中。因此,YaST 使用不同的执行线程来处理两方面:Qt 小部件的图形系统事件以及脚本的控制流。
这始终有些不规范,我们总是需要做一些奇怪的事情才能使其正常运行。我们总是有点滥用 Qt,以使其适应这种模式。我们也一直担心,下一次 Qt 版本可能会导致其崩溃,并且我们可能很难使其再次工作。
现在,随着 bug#1139967 的出现,这种情况已经发生了,但幸运的是,我们找到了一个 Qt 调用来使其恢复生命;一个 QEventLoop::wakeUp() 调用修复了它。不过,我们还不完全知道(目前)为什么。有人有什么提示吗?
我们应该告诉您吗?好吧,我们认为您有权知道。毕竟,它已经工作了大约 20 年(!)……现在又恢复了工作。
YaST 网络重构仍在继续
仍然不太顺利的是重构的网络管理。我们在最新的冲刺期间一直在努力,但至少还需要一个冲刺才能使其稳定到足以提交到 openSUSE Tumbleweed。
我们在本次冲刺期间对哪些部分进行了工作?很高兴您问!
我们正在清理当前无线配置中的混乱。很快,该部分将更直观,并且与其他类型的网络保持一致。我们还在确保为添加到网络配置的新卡片提供有意义的默认值(所有类型的卡片,而不仅仅是无线卡片)。用于配置 udev 以享受网络接口稳定名称的功能也得到了一些改进。新版本更加稳定和灵活。最后但并非最不重要的一点,我们正在改进 s390 系统中的设备激活,使其在代码中更加直接,在用户界面中更加清晰。
如果一切按计划进行,在下一次冲刺结束时,我们将准备将改进的 YaST 网络提交到 Tumbleweed。届时,我们将发布一篇专门的博文,其中包含屏幕截图和对所有更改的进一步说明。
通过加密设备增强分区器体验
说到正在进行的工作,我们目前正在努力扩展分区器在数据加密方面支持的技术和用例集。与网络领域一样,重大新闻需要等待未来的博文。但是,如果您仔细观察 Tumbleweed 中提供的分区器的用户界面,您就可以开始发现一些预示即将推出新功能的小变化。
第一个变化非常微妙。在可视化加密设备的详细信息时,除了之前存在的“已加密:是”文本外,您现在还可以看到具体的加密类型。对于所有使用 YaST 加密的设备,该类型始终为 LUKS1,因为这是 YaST 支持的唯一格式……到目前为止。 ![]()
在编辑加密设备时,可以看到一些其他小变化。如果该设备最初未在本系统中加密,则除了标签的微小调整外,不会发生任何变化。用户只是看到一个带有空字段的表单,用于输入密码。
在第二次编辑当前分区器执行期间已标记为加密的设备时,表单已预填充了之前输入的密码。过去,之前的加密层会被丢弃(因此其密码和其他参数会被忘记),并且用户必须从头开始定义加密。这在将来会变得更加重要,因为加密表单将不仅仅是一个密码字段。请关注相关新闻。
此外,在编辑系统中已加密的设备时,会提供一个选项,只需使用现有的加密层,而不是用分区器创建的(可能更有限的)加密来替换它。
除了为加密领域打开更强大和更相关更改的大门外,这些更改本身也代表着重要的可用性改进。
整理 YaST 团队的 Trello 板
如本报告和所有先前报告所示,YaST 团队不断致力于许多不同的领域,例如安装、网络管理、存储技术……您说得对。我们使用 Trello 来组织所有这些工作。Bugzilla 或 Jira 中的每个错误或功能都有一个相应的 Trello 卡片。正如所发生的那样,有时在关闭错误后,会忘记更新其 Trello 卡片。
使用 ytrello 检查显示,在 900 多张卡片中,大约 500 张已过时,可以关闭。超过一半!为什么这么多?
我们发现,这些卡片中的相当一部分是已关闭(已存档)列表中的开放卡片。因此,在存档列表时,请不要忘记在存档其卡片之前。我们刚刚了解到 Trello 不会自动执行此操作。这就是为什么 Trello 用户界面中 Archive This List 旁边有一个菜单项 Archive All Cards in This List... 的原因。
回到工作!
这个夏天,我们承诺要改进我们的用户界面库 (libYUI),改造管理网络配置的代码,扩展对加密的支持……这意味着我们还有很多工作要做。
所以让我们回到工作,而您尽情享受乐趣吧!



