[roll] Roll fuchsia [assembly] Improve ergonomics of managing AIBs
IMPORTANT: The scrutiny goldens are currently containing artifacts
from all feature set levels, but artifacts are only marked as
required if they are always present in both Standard and Utility.
Add metadata to the AIB definition that declares
the following:
allowed_in: Which feature set levels and build type combinations
this AIB is allowed to be added to. Assembly asserts
that the AIB is never added to an invalid combination.
scrutiny_required: Which feature set levels and build type
combination this AIB is expected to be found on. The
scrutiny goldens list the contents of this AIB as
required (no ? prefix).
auto_include_in: Which feature set levels and build type
combinations should automatically include this AIB.
When this field is provided allowed_in and required_in
are inferred, therefore they cannot be specified
manually.
experimental: Whether this AIB is experimental and should be
excluded from the scrutiny goldens. Experimemtal is
meant for features that are still under development
and not quite ready for a security review yet.
Providing this metadata to the AIB itself allows us to clean up much
logic in Assembly and the Scrutiny golden generation.
We also get pretty errors like the following:
```
Product Assembly Failed
...
Caused by:
0: Adding platform bundle X
1: Product is using Fuchsia 'Utility' feature set level and 'User'
build type but attempted to include a feature that is only
allowed on: {Embeddable: [Eng], Bootstrap: [Eng], Utility:
[Eng], Standard: [Eng]}
```
Original-Bug: 474331015, 395881679
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1487155
Original-Revision: 17760948f3cd040a22088af3e7e09c196c0a754a
GitOrigin-RevId: b87348d55a4ca390e5008f01bd17383b84d79777
Change-Id: Ic48e7781f2fb31dc8aee4b7f4a52ea7f4a0d9305
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.