日期: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 扩展程序的“Debugger 未连接到设备”问题。
- 默认情况下,所有组件测试都经过封闭解析器;启动测试组件软件包以外的软件包中的组件的测试将失败,除非声明软件包。请参阅封闭组件分辨率。
- 更新了
ffx log --severity
,以将警告和警告作为参数。
- 更新了
- 已升级实验性功能:
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
。 - 用于根据文件名查询检查的 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) 时,该工具输出了重复的 Repo 消息,而不是重复的套装消息。
影响:进行了修复,以对重复项中的 PBM 消息重新排序。
问题:默认的 remove 命令会移除树内 build。
影响:已实施修复,不再在 remove 中包含树内 build。
问题:用户无法在日志记录器中设置严重级别限制。
影响:驱动程序现在支持通过 ffx log --severity
动态设置严重级别。
诊断
- Archivist 不再提供生命周期事件作为数据源,仅提供检查和日志。还重构了 Archivist,使用新的事件流功能注入数据。
- 已实现 RFC-171,且现在可以确保所有组件都获取 LogSink,从而改善开发者体验。
- 改进了分类解析器并做出了一些语言改进,例如
_-separated numbers, Any, All
。 - 采样器已经过重构,不会发出空的直方图存储分区,从而减少 Cobalt 的负载。
ffx inspect
获得了使用 glob 的ffx inspect list-files
和iquery show –file
等新功能,并经过了改进,不再依赖于 hub。- 修复了 Rust 日志记录库的一些 bug,使库缩小了,从而节省了 BlobFS 中的空间。
FIDL
我们开始在二进制文件中推出对未知交互的支持。请参阅 RFC-0138。
图形和媒体
- 针对 Tigerlake 设备对 i915 进行了多项稳定性改进。驱动程序默认处于启用状态。
问题:在启用“显示设置”测试用例后,设备卡在黑屏。
影响:修复了 AMLogic 显示问题,以更正某些已固定的面板。
问题:使用驱动程序框架 v2 时,驱动程序发生死锁。
影响:i915 显示驱动程序已移至驱动程序框架 v2。
HCI(输入、A11y、国际化和观看系统)
问题:测试在场景控制器期间发生的失败。
影响:进行了更新,以允许客户端使用原始 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
组件。