日期:2023 年 4 月 12 日
版本:F10
已实现以下更改:
组件框架
除了 Opal、Kronk、cast_runner
和 web_instance
之外,大多数组件现在都以 v2 的形式运行。
开发者
Bazel
Bazel 工作流进行了以下改进:
- 在 Fuchsia 平台之外定义的 FIDL 库不得以 Fuchsia 开头。
fuchsia_package.deps
应更新为fuchsia_package.components
和fuchsia_package.tools
。- 运行和发布组件会输出所执行的每个步骤;用户无需为此更新进行任何更改。
问题:需要添加初始发布规则。
影响:添加了新的 fuchsia_task_publish
规则,系统会自动为软件包创建此规则。现在,调用 bazel run :pkg.publish
将发布软件包。
问题:需要向 CIPD 下载内容添加并行提取功能。
影响:在 CIPD 下载中添加了并行提取功能,从而提高了 Clang 和 SDK 的下载速度。
问题:需要废弃 fuchsia_package
中的依赖项。
影响:废弃了 fuchsia_package
中的依赖项。无需进行任何更改,但在 fuchsia_package
更新为使用组件和资源之前,系统会输出警告。
ffx
ffx
及其他工具进行了以下更新:
- 如果您的计算机上已有商品套装,商品套装下载功能不会重新下载该商品套装。
- 新增了清理之前下载的产品套装的功能。
- 改进了下载商品套装时的界面。
ffx
组件复制插件支持在主机和目标上的组件之间复制文件。- 更可靠地恢复未完成的下载。
- 配置文件工具:
- 添加了使用分桶报告内存用量的选项。
- 修复了涉及间接 VMO 收费不正确的会计错误。
- 美化改进,包括添加了可在人类可读的尺寸和确切尺寸之间进行选择的选项、对齐输出,以及更清晰的说明。
- 调试工具:
- 增强了兼容性支持,因此用户应该会遇到更少的版本不匹配问题。
- 解决了 Fuchsia VSCode 扩展程序的“调试程序未连接到设备”问题。
- 默认情况下,所有组件测试都受密封解析器的约束;除非声明软件包,否则在测试组件软件包以外的软件包中启动组件的测试将会失败。请参阅密封组件解析。
- 更新了
ffx log --severity
,使其同时接受 warn 和 warning 作为参数。
- 更新了
- 已从实验阶段过渡:
ffx package build
- 构建软件包。ffx repository publish
- 将一个或多个软件包发布到代码库。ffx repository package list
- 列出代码库中的所有软件包。ffx repository package show
- 列出软件包的内容。
- 引入到实验性功能:
ffx package far
- 用于处理通用far
命令。ffx package archive
- 用于处理软件包归档文件。ffx driver list-devices
- 用于支持模糊匹配。
- 添加了
ffx driver list-nodes-groups
。 - 添加了
ffx inspect list-files
。- 从
ffx inspect list-files
中移除了对 Hub 的使用,并删除了ffx inspect show-files
。 - 用于根据文件名查询 inspect 的 API 现已移至
ffx inspect show --file
,并采用相对于组件命名空间的文件名。
- 从
- 更多
ffx component
插件 (destroy, doctor, explore, start, stop, resolve, reload
) 支持对标识名、网址和实例 ID 进行部分匹配。 - 为
ffx trace
指定--categories
时,可以使用通配符*
来指示启用与给定前缀匹配的所有类别;例如,kernel*
会与kernel:ipc
、kernel:syscall
等匹配。 - 添加了在 C++ 中输出
set, map, unordered_set
和unordered_map
的功能。 - 添加了新设置
source-map
,可让您更灵活地查找源文件。 - 改进了连接错误的显示方式。
- 引入了同步界面;运行时间较短的命令会阻塞输入。
- 向
ffx product-bundle get,
添加了--force-repo
选项,该选项会覆盖软件包仓库,而不是因为存在先前的仓库而拒绝执行此操作。 - 增加了日志中的跟踪调试输出。
- 不会出现部分下载:在下载完成之前使用临时目录,避免出现部分下载问题。
问题:我们将移除对 OAuth2 OOB 的支持。
影响:更新为默认使用新的 OAuth2 非 OOB 工作流程。
问题:列出或移除软件包时,product-bundle
工具不会返回任何内容,也不会有效通知用户。
影响:进行了更新,以便在找不到软件包时,工具会更明确地显示。
问题:用户不清楚 remove --all
命令即将删除哪些软件包。
影响:更新了列表,以列出要移除的软件包。
问题:ffx product-bundle list
的排序导致最早的图片显示在列表顶部。
影响:更新了列表的排序顺序,以便最新的软件包列在前面。
问题:尝试 get
重复的产品软件包消息 (PBM) 时,该工具会输出重复的代码库消息,而不是重复的软件包消息。
影响:已实施修复程序,以对重复的 PBM 消息重新排序。
问题:默认的移除命令会移除树内 build。
影响:实现了修复程序,以便在移除时不包含树内 build。
问题:用户无法在日志记录器中设置严重程度限制。
影响:驱动程序现在支持通过 ffx log --severity
动态设置严重程度。
诊断
- 归档工具不再提供生命周期事件作为数据源,只提供“检查”和“日志”作为数据源。我们还重构了归档程序,以便使用新的事件流功能提取数据。
- 实现了 RFC-171,现在可确保所有组件都获取 LogSink,从而改进开发者体验。
- 改进了分类解析器,并改进了一些语言(例如
_-separated numbers, Any, All
)。 - 重构了采样器,使其不会发出空的直方图分桶,从而减轻了 Cobalt 上的负载。
ffx inspect
新增了一些功能,例如:ffx inspect list-files
、iquery show –file
和全局通配符,并且经过改进,不再依赖于集线器。- 修复了 Rust 日志记录库的一些 bug,使其变得更小,从而在 BlobFS 中节省了空间。
FIDL
二进制文件中开始推出对未知互动的支持。请参阅 RFC-0138。
图形和媒体
- 改进了 Tigerlake 设备上的 i915 的稳定性。驱动程序默认处于启用状态。
问题:启用“显示设置”测试用例后,设备卡在黑屏上。
影响:修复了 AMLogic 显示屏,以更正某些固定面板。
问题:使用驱动程序框架 v2 时,驱动程序会遇到死锁。
影响:i915 显示驱动程序已移至驱动程序框架 v2。
HCI(输入、无障碍功能、i18n 和 View 系统)
问题:场景控制器期间发生测试失败。
影响:更新后,客户端可以使用原始 ViewportCreationToken
呈现平原视图。
问题:在 Flatland 中,突出显示的内容的颜色不同。
影响:修复了 Flatland 中的 a11y 突出显示颜色。
问题:需要具备屏幕截图功能。
影响:进行了更新,以添加图片压缩框架。
问题:当剪贴板内容发生变化时,应通知用户。
影响:更新了剪贴板监视方法。
问题:需要添加图片翻转选项 API。
影响:更新了 API,添加了图片翻转选项。
问题:pixel_scale
字段已被弃用,应予以移除。
影响:更新了 pixel_scale
的状态,将其从“已废弃”更改为“已移除”。
内核
问题:需要进行更新,以便为 PID 0 发出名为“kernel”的进程记录,以恢复与原始 ktrace
导入器的一致性。
影响:为内核创建了进程记录,其中包含内核线程和每个 CPU 事件轨迹。
问题:需要能够在本地和自动化环境中默认通过 UEFI 启动模拟器。
影响:更新后,可在自动化测试中对模拟器进行 UEFI 测试。
问题:需要使用 zx
迁移 zxc
库。
影响:更新了 zxc
引用,将其迁移到了 zx
。
问题:需要减少线程中的填充。
影响:进行了更新,以减少线程中的内边距。
问题:需要更新 ktrace
序列化器模板,以支持 val_type
参数,并使 StringRef
接受字符串大小参数。
影响:更新了 ktrace
中的序列化器模板和依赖项。
问题:需要更改 C++ 中对 Undef __UNUSED
的引用。
影响:更新了 C++ 中的引用,将其从 Undef __UNUSED
更改为 maybe_unused
。
问题:建议实现乐观时间片延长。
影响:改进了使用时间片扩展时的内核互斥量性能。
虚拟化
- 改进了启动虚拟机失败时的错误消息。
- 将
vsh
工具从 C++ 移植到了 Rust。 - 在
virtio-gpu
中实现了光标命令支持。 - 添加了初始
vmm_launcher
组件。