Date: April 12, 2023
Version: F10
The following changes have been implemented:
Component Framework
Most components now run as v2, except Opal, Kronk, cast_runner
, and web_instance
.
Developer
Bazel
The following improvements have been made in the Bazel workflows:
- FIDL libraries defined outside of the Fuchsia platform must not start with Fuchsia.
fuchsia_package.deps
should be updated tofuchsia_package.components
andfuchsia_package.tools
.- Running and publishing a component prints each step being taken; the user does not need to make any changes for this update.
Issue: Need to add initial publishing rules.
Impact: A new fuchsia_task_publish
rule was added, which is automatically created for packages. Calling bazel run :pkg.publish
will now publish the package.
Issue: Need to add parallel extraction to CIPD downloads.
Impact: Parallel extraction was added to CIPD downloads, which increased download speeds of Clang and SDK.
Issue: Need to deprecate deps in fuchsia_package
.
Impact: Deprecated deps in fuchsia_package
. No changes needed, but a warning will be printed until fuchsia_package
is updated to use components and assets.
ffx
The following updates have been made in ffx
and other tools:
- Product bundle downloads will not redownload a product bundle if it already exists on your machine.
- New ability to clean up previously downloaded product bundles.
- Improved UI when downloading product bundles.
ffx
component copy plugin supports copying files between host and a component on target.- More reliable resumption of incomplete downloads.
- Profile tooling:
- Added option to report the memory usage with buckets.
- Fixed accounting bug involving incorrect charging of indirect VMOs.
- Cosmetic improvements, including adding an option to choose between human readable sizes and exact sizes, aligning outputs, and clearer descriptions.
- Debugging tools:
- Enhanced compatibility support so users should see fewer version mismatches.
- Resolved "Debugger not connected to device" issue for Fuchsia VSCode extension.
- All component tests are subject to the hermetic resolver by default; tests that launch components in packages other than the test component's package will fail unless the packages are declared. See Hermetic component resolution.
- Updated
ffx log --severity
to take both warn and warning as arguments.
- Updated
- Graduated from experimental:
ffx package build
– Build a package.ffx repository publish
– Publish one or more packages to a repository.ffx repository package list
– List all packages in a repository.ffx repository package show
– List the contents of a package.
- Introduced to experimental:
ffx package far
– For working with genericfar
commands.ffx package archive
– For working with package archives.ffx driver list-devices
– For fuzzy matching support.
- Added
ffx driver list-nodes-groups
. - Added
ffx inspect list-files
.- Removed hub usage from
ffx inspect list-files
and deletedffx inspect show-files
. - The API for querying inspect based on a filename now moves to
ffx inspect show --file
and takes a filename relative to the component namespace.
- Removed hub usage from
- More
ffx component
plugins (destroy, doctor, explore, start, stop, resolve, reload
) support partial matching on moniker, URL and instance ID. - When specifying
--categories
forffx trace
, a wildcard*
may be used to indicate enabling all categories matching a given prefix; for example,kernel*
would matchkernel:ipc
,kernel:syscall
, etc. - Added the ability to print a
set, map, unordered_set
, andunordered_map
in C++. - Added a new setting
source-map
that allows more flexibility in finding source files. - Improved the display of connection errors.
- Introduced synchronous UI; short-running commands will block the input.
- Added
--force-repo
option toffx product-bundle get,
which will overwrite a package repository rather than declining to do so because the prior one is present. - Increased tracing debug output in logs.
- No partial downloads: using temporary directory until download is complete, avoiding partial download issues.
Issue: Support for OAuth2 OOB is being removed.
Impact: Update to default to new OAuth2 non-OOB workflow.
Issue: When listing or removing bundles, the product-bundle
tool would not return anything and would not effectively inform the user.
Impact: Update has been made so that tool is more explicit when no bundles are found.
Issue: Users were unclear which bundles are about to be deleted by the remove --all
command.
Impact: Update has been made to list the bundles to be removed beforehand.
Issue: Sort order of ffx product-bundle list
is causing the oldest image to appear at the top of the list.
Impact: Update made to reverse sort order of list so that the newest bundles are listed first.
Issue: When attempting to get
a duplicate product bundle message (PBM), the tool was printing the duplicate repo message instead of the duplicate bundle message.
Impact: Fix was implemented to reorder PBM messages on duplicates.
Issue: Default remove commands were removing in-tree builds.
Impact: Fix was implemented to not include in-tree builds in remove.
Issue: Users were unable to set their severity limit in logger.
Impact: Drivers now support having their severity set dynamically via ffx log --severity
.
Diagnostics
- The Archivist no longer provides Lifecycle events as a data source, only Inspect and Logs. Archivist was also refactored to ingest data using the new event stream capabilities.
- RFC-171 was implemented and it is now ensured that all components get LogSink, improving developer experience.
- Improvements to the triage parser and a few language improvements such as
_-separated numbers, Any, All
. - Sampler was refactored to not emit empty histogram buckets reducing the load on Cobalt.
ffx inspect
gained new features such as:ffx inspect list-files
,iquery show –file
with globs, and was improved to not rely on the hub.- A few bugs were fixed for the Rust logging library and it became a bit smaller, saving space in BlobFS.
FIDL
Support for unknown interactions is starting to roll out in binaries. See RFC-0138.
Graphics and Media
- Various stability improvements to i915 on Tigerlake devices. Driver has been enabled by default.
Issue: Device was stuck at black screen after enabling "Display Settings" testcase.
Impact: Fix was made to AMLogic display to correct some fixed panels.
Issue: Drivers were running into deadlocks when using Driver Framework v2.
Impact: i915 display driver was moved to Driver Framework v2.
HCI (Input, A11y, i18n, and View System)
Issue: Test failures occurring during scene controller.
Impact: Update was made to allow clients to present a flatland view using a raw
ViewportCreationToken
.
Issue: Highlights are a different color on Flatland.
Impact: Fix was made to the a11y highlight color in Flatland.
Issue: Need to have screenshot capabilities.
Impact: Update was made to add image compression skeleton.
Issue: Users should be notified when the clipboard contents change.
Impact: Update was made to add a clipboard watch method.
Issue: Need to add image flip options API.
Impact: Update was made to add image flip options API.
Issue: The pixel_scale
field was deprecated and should be removed.
Impact: Update was made to change the status of pixel_scale
from deprecated to removed.
Kernel
Issue: Update needed to emit a process record named "kernel" for PID 0 to restore parity with
the original ktrace
importer.
Impact: Process record was created for kernel with kernel threads and per-CPU event tracks.
Issue: Need ability to boot emulators through UEFI by default, locally and in automation.
Impact: Update was made to enable UEFI testing on emulators in automation.
Issue: Need to migrate zxc
library with zx
.
Impact: Update was made to migrate zxc
references to zx
.
Issue: Need to reduce padding in thread.
Impact: Update was made to reduce padding in thread.
Issue: Updates needed for ktrace
serializer templates to support val_type
parameters and StringRef
to accept string size parameters.
Impact: Updates were made to serializer templates and dependents in ktrace
.
Issue: Need to change references to Undef __UNUSED
in C++.
Impact: Update was made to change references from Undef __UNUSED
to maybe_unused
in C++.
Issue: Suggestion was made to implement optimistic timeslice extension.
Impact: Improvements were made to kernel mutex performance when using timeslice extension.
Virtualization
- Improved error messages when launching VMs fail.
- Ported the
vsh
tool from C++ to Rust. - Implemented cursor command support in
virtio-gpu
. - Added initial
vmm_launcher
component.