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.depsshould be updated to- fuchsia_package.componentsand- fuchsia_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.
- ffxcomponent 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 --severityto 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 generic- farcommands.
- 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-filesand deletedffx inspect show-files.
- The API for querying inspect based on a filename now moves to ffx inspect show --fileand takes a filename relative to the component namespace.
 
- Removed hub usage from 
- More ffx componentplugins (destroy, doctor, explore, start, stop, resolve, reload) support partial matching on moniker, URL and instance ID.
- When specifying --categoriesforffx 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_mapin C++.
- Added a new setting source-mapthat 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-repooption 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 inspectgained new features such as:- ffx inspect list-files,- iquery show –filewith 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 vshtool from C++ to Rust.
- Implemented cursor command support in virtio-gpu.
- Added initial vmm_launchercomponent.