到处都是错误修复
除了 openSUSE Tumbleweed,YaST 团队目前正在致力于发布 SLE12-SP3、openSUSE Leap 42.3、SLE15、openSUSE Leap 15、SUSE CaaSP 1.0 和 Kubic(稍后会详细介绍 Kubic)。其中三个已经进入测试阶段,这意味着它们正在被多个方面在多种场景、硬件平台和可能的配置下进行广泛测试。大量的手动测试总是会导致发现一些错误,无论我们如何尝试为最常见的情况设置一些自动化测试。
我们的测试人员发现的许多错误都与国际化和本地化有关,主要是 UI 中总是以英语显示的文本,尽管系统已配置(或正在安装)为不同的语言。
但是,当然,也发现了其他类型的错误。例如,我们的硬件检测组件(hwinfo)无法处理一些新机器,使得安装体验变得非常不愉快。
因此,YaST 团队在此次冲刺中投入了大量精力来消除这些恼人的错误。但这并不意味着我们没有时间进行一些有趣的新功能和改进。
存储重新实现:解锁加密设备
我们的新存储系统再次带来新消息。现在它能够在硬盘探测步骤中检测并解锁预先存在的加密设备,弹出一个新的弹出对话框,要求输入相应的设备密码。解锁设备后,您所有已安装的系统都将可用于升级,此外,分配在加密设备上的 LVM 卷也将被激活。
新的存储堆栈预计将在 SLE15(以及 openSUSE Leap 15)中首次亮相,但该功能已可通过 StorageNG 测试 ISO 进行安装和升级过程的测试。
存储重新实现与 AutoYaST – 一个爱情故事
但在此次冲刺中,新存储堆栈带来的最令人高兴的消息是它与 AutoYaST 的结合。新的自动分区提议(即“引导设置”)现已集成到 AutoYaST 中。
得益于新的软件架构,AutoYaST 用户将能够覆盖控制文件中的每一个分区设置。
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
<general>
<storage>
<!-- Override settings from control file -->
<try_separate_home config:type="boolean">false</try_separate_home>
<proposal_lvm config:type="boolean">true</proposal_lvm>
</storage>
</general>
</profile>
因此,您可以轻松地打开/关闭 LVM,为 /home 使用单独的分区,启用/禁用快照,启用/禁用 Windows 大小调整等。所有这些仍然依赖于自动存储建议来完善细节。这在当前版本的 AutoYaST 中是不可能实现的,除非被迫明确定义每个分区和 LVM 卷。
但使用新的 libstorage 提案最简单的方法是在 AutoYaST 配置文件中完全不定义任何设置。在这种情况下,分区提案代码将完成全部工作,并使用默认选项安装一个新系统。
当然,在将新的存储堆栈集成到即将发布的 SLE15 之前,AutoYaST 支持必须更进一步。除了使用和配置提案之外,还必须能够通过 AutoYaST 配置文件的相应 <partitioning> 部分定义一个完全自定义的设置,包括分区、LVM 卷、软件 RAID 设备等等。因此,我们利用这次冲刺来规划一个计划,以在接下来的几个月内实现这一目标,分析 AutoYaST 支持的所有场景和配置,并寻找使用现有 yast2-storage-ng 基础设施支持它们的最佳方式。这项努力的成果是 这份详细文档 以及为即将到来的冲刺准备的任务列表(用 Scrum 行话来说是 PBI)。因此,请准备好接收这方面的更多消息。
自动清理回滚创建的快照
到目前为止,用户必须确保删除回滚创建的快照,以避免存储空间被占满。现在,这个过程已实现自动化。在回滚期间,Snapper 会将与先前默认子卷对应的快照以及先前默认子卷的备份快照的清理算法设置为“数字”。这一增强行为将在 SLE12-SP3 和 openSUSE Leap 42.3 中提供。欲了解更多信息,请参阅 Snapper 博客上更详细的帖子。
帮助将 CaaSP 的乐趣带到 openSUSE
几个冲刺以来,我们一直在展示针对 SUSE CaaSP 的功能,CaaSP 是由 Kubernetes 提供支持的容器管理解决方案。其中许多功能和自定义配置都存在于一个名为 yast2-caasp 的软件包中,该软件包最初是针对这个基于 SLE12-SP2 代码库的即将推出的伟大产品。
但现在,应 Kubic 项目 的要求,该软件包也可用于基于 Tumbleweed 的系统。Kubic 将是 SUSE CaaSP 的 openSUSE “分身”,即一个基于 openSUSE 和 Kubernetes 的容器即服务平台。与任何其他 YaST 组件一样,SUSE 产品及其 openSUSE 兄弟将共享完全相同的源代码。
提供无效注册 URL 时改进的用户体验
人会犯错误,但当在安装命令行中输入某个选项时犯错时,通常意味着需要重新启动机器才能修复它们。
在安装命令行中输入某个选项时犯错,通常意味着需要重新启动机器才能修复它们。
注册 URL (regurl) 选项就是这种情况。如果提供的地址格式错误,安装就会停止。在此次冲刺中,我们添加了对该 URL 的早期检查,允许用户重新输入并继续安装。这显然改善了用户体验。
如果是自动安装 (AutoYaST),则会报告错误并跳过获取安装程序更新和注册系统的步骤。
仍有改进空间,允许用户在其他场景中修改 URL。例如,对于格式有效但指向无法访问服务器的 URL。但在这些情况下,要找出问题的罪魁祸首并不那么简单。如果问题的根源不是 URL 而是不正确的网络配置,那么用重复的弹出窗口来改变注册 URL 是没有意义的。
翻译与插值
正如本文开头所提到的,我们最近收到了不少关于翻译缺失的 bug 报告。尽管其中一些确实是由 YaST 代码中的 bug 引起的,但另一些是由于一个有 bug 的 Ruby rxgettext 脚本造成的,该脚本从 Ruby 源代码中收集可翻译字符串。Ruby-GetText 开发人员已知此 bug,但尚不清楚何时(或是否)会修复。
问题在于该工具无法从插值中收集可翻译字符串。例如,它无法从字符串文字 "#{_("foo")}" 中找到“foo”字符串。结果是,该字符串在生成的 POT 文件中缺失,无法由 SUSE 或 openSUSE 本地化团队翻译。
作为一种变通方法,我们修复了 YaST 代码,使其不再在插值中使用翻译。我们还记录了混合翻译和插值时可能出现的问题及其解决方案。
说到新的面向开发者的文档……
YaST 开发者安全提示
YaST 以管理员权限(root)运行,因此我们必须警惕代码中可能存在的安全问题。在本次冲刺中,我们发布了一份文档,其中简要总结了 YaST 开发人员的安全提示。
如果您正在编写 YaST 模块,您应该肯定会阅读它,但对于其他程序员来说也可能很有趣,因为许多提到的问题都是通用的,不只与 YaST 相关。
文档可在此处在线获取。
会议上见
这就是本次冲刺报告的全部内容。我们还有很多事情正在进行中,但在此次冲刺中未能完成,所以它们将不得不等待下一次报告。与此同时,我们希望能在 openSUSE Conference 2017 上见到各位。届时将有一个关于现代 YaST 开发的完整研讨会,总结了 YaST 开发过去一年中更相关的新闻,关于新的卓越的 yast2-configuration-management 模块、关于我们的持续交付基础设施以及我们如何使用 Docker 交付 YaST 的讲座……当然,还有许多其他有趣的内容,例如 Thorsten Kukuk 关于我们之前提到的全新 openSUSE Kubic 的精彩演讲。更重要的是,还有很多乐趣!
对于那些无法参加会议的人,三周后我们在这个互联网小角落再见!



