[roll] Roll infra/recipes [deps] Migrate to dataclass deps

Migrate all recipes, recipe modules, and recipe module tests from the
legacy string-list `DEPS = [...]` syntax to dataclass declarations:
- Declare `@dataclass class DEPS(RecipeScriptApi)` with typed attributes
  (`<module>: <module>.API`) imported from `RECIPE_MODULES`.
- Declare `@dataclass class TEST_DEPS(RecipeTestApi)` with
  `<module>.TEST_API` for modules accessed during test generation in
  `GenTests`.
- Add type annotations for `api` across `RunSteps`, `GenTests`, and
  top-level execution and test helper functions.
- Update `scripts/cleanup_deps.py` to support 2-part `RECIPE_MODULES`
  imports and skip files using dataclass `DEPS`.

Original-Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/infra/recipes/+/1814969
SLSA-Policy-Verified: SLSA Policy Verification Service <devtools-gerritcodereview-exitgate@google.com>
Original-Original-Revision: b75b4846986adf3110a986b150fb577ce0b1770c
GitOrigin-RevId: 585f2e65039ea2c81334466d244d23496673819a
Change-Id: Ice90c7e62c34c55fe639ba25e45e6835f9537133
Reviewed-on: https://fuchsia-review.googlesource.com/c/integration/+/1832150
Cr-Commit-Position: refs/heads/main@{#202319}
1 file changed
tree: 1f87ff6bc2a9e574380e0ab670183a1d04a1298d
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cobalt
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

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.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.