Migrate all references to the newer avocado.yaml structure (ENG-2182)#23
Open
nicksinas wants to merge 7 commits into
Open
Migrate all references to the newer avocado.yaml structure (ENG-2182)#23nicksinas wants to merge 7 commits into
nicksinas wants to merge 7 commits into
Conversation
Update all 30 references to the current avocado.yaml layout:
- Remove the deprecated cli_requirement key
- Point the SDK image at docker.io/avocadolinux/sdk:{{ config.distro.release }}
(drop the -channel suffix; use the config.* namespace)
- Move the root password out of the config/config-dev confext into a
top-level permissions profile
- Add top-level rootfs and initramfs keys referencing that profile
- Drop the now-empty config/config-dev extension and its runtime references
icam-540 additionally retargets to jetson-orin-nx (its underlying SoM,
with default_target_board: icam-540), which resolves in the package feed.
Add top-level .gitignore rules so per-build generated files are never committed from any reference: - avocado.lock - .avocado-desktop.json - .avocado/ - .avocado-state Previously only 1 of 30 references ignored these locally.
Reference-by-reference build check: for each reference runs clean/unlock/install/build, then tears down to a clean git state and strips build artifacts. Writes a live markdown report after each step (scripts/build-report.md), continues past failures, and prints a PASS/FAIL summary.
There was a problem hiding this comment.
Pull request overview
Migrates reference avocado.yaml files to the newer schema structure (removing deprecated keys, updating SDK image templating, and moving root-password configuration into top-level permissions profiles), and adds repo-wide tooling/ignores to support repeatable reference build verification without committing build state.
Changes:
- Update reference
avocado.yamlfiles to usepermissions+rootfs/initramfsand remove deprecatedcli_requirementandconfig/config-devconfext usage. - Standardize SDK image to
docker.io/avocadolinux/sdk:{{ config.distro.release }}. - Add a reference-by-reference build verification harness and expand
.gitignoreto exclude Avocado-generated state.
Reviewed changes
Copilot reviewed 31 out of 32 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| zephyr-imx8mp-evk/avocado.yaml | Removes deprecated keys and introduces top-level permissions + rootfs/initramfs; updates SDK image template. |
| webkit-ui/avocado.yaml | Moves root password config into permissions and updates SDK image template; removes config-dev runtime reference. |
| shell-heartbeat/avocado.yaml | Drops config confext usage, adds permissions + rootfs/initramfs, updates SDK image template. |
| scripts/build-check-references.sh | New harness to clean/unlock/install/build each reference and produce a live markdown report. |
| rust-vitals/avocado.yaml | Removes config-dev confext and adds permissions + rootfs/initramfs; updates SDK image template. |
| rubicon/avocado.yaml | Removes config-dev confext and adds permissions + rootfs/initramfs; updates SDK image template. |
| ros2-ufactory-lite6/avocado.yaml | Removes deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| react-dashboard/avocado.yaml | Removes config-dev runtime refs across targets; adds permissions + rootfs/initramfs; updates SDK image template. |
| qemu-quickstart/avocado.yaml | Drops config runtime/confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| python-yolo/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| python-whisper/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| python-multiversion-uv/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| python-mqtt/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| python-flask/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| pi-metrics-exporter/avocado.yaml | Removes config-dev confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| nvidia-gstreamer-yolo/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| nvidia-deepstream/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| nodejs-dashboard/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| linux-custom-kernel/avocado.yaml | Removes config-dev runtime/confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| java-hello/avocado.yaml | Removes config-dev confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| iphone-travel-router/avocado.yaml | Moves root password config into permissions while preserving non-empty password; updates SDK image template. |
| imx8mp-npu-pose/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| imx8mp-npu-nnstreamer/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| icam-540/avocado.yaml | Updates default target/board mapping and migrates to permissions + rootfs/initramfs; updates SDK image template. |
| elixir-phoenix/avocado.yaml | Removes config-dev runtime/confext and a now-empty confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| docker-save/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| docker-registry/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| dev/avocado.yaml | Removes config-dev confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| cpp-tui-dashboard/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| c-gpio/avocado.yaml | Drops deprecated keys/config confext; adds permissions + rootfs/initramfs; updates SDK image template. |
| astra-1680-deepx/avocado.yaml | Migrates to permissions + rootfs/initramfs; updates SDK image template; also removes a local distro repo override. |
| .gitignore | Adds repo-wide ignores for Avocado lock/state files. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- elixir-phoenix: restore the avocado-ext-connect-config extension that `avocado connect clean` stripped from avocado.yaml during a verification run (unintended side effect, not part of the migration). Verified the reference still builds with it in place. - build-check-references.sh: snapshot avocado.yaml per reference and restore it after teardown so `avocado connect clean` can no longer leak edits into tracked config; fix the REPORT_FILE default doc to match the code (scripts/build-report.md).
The reference shipped without the spec-required docs. Add a frontmatter README (language / targets / topics) and a full getting_started guide (prerequisites → install → build → deploy → verify → customize), sourced from the reference's avocado.yaml and files/ scripts.
Bring the three remaining references into compliance with the docs spec (spec_readme.md / spec_getting_started.md): - imx8mp-npu-nnstreamer, imx8mp-npu-pose: prepend README frontmatter (language / targets / topics); README bodies unchanged. - zephyr-imx8mp-evk: prepend README frontmatter and add the missing getting_started.md. All references now pass the spec (frontmatter README + getting_started.md).
Teardown previously ran `git clean -fdx`, which deletes ALL untracked files under a reference (including a developer's local work-in-progress). Switch to `-X` (ignored-only): build state is fully gitignored so it's still removed, while untracked non-ignored files are left in place and flagged by the residual-changes check. Addresses PR review feedback.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Migrates all 30 references to the current
avocado.yamlstructure (ENG-2182).Per-file changes:
cli_requirementkeydocker.io/avocadolinux/sdk:{{ config.distro.release }}(drop the-channelsuffix; use theconfig.*namespace)config/config-devconfext into a top-levelpermissionsprofilerootfsandinitramfskeys referencing that profileconfig/config-devextension and its runtime referencesOverlays, packages, services,
on_merge/on_unmerge,docker_images, SDK args, and all real extensions are untouched.iphone-travel-routerkeeps its non-emptyavocadopassword (Cockpit/PAM).icam-540additionally retargets tojetson-orin-nx(its underlying SoM,default_target_board: icam-540) so it resolves in the feed.Also included:
.gitignore: repo-wide rules so per-build state is never committed (avocado.lock,.avocado-desktop.json,.avocado/,.avocado-state) — previously only 1 of 30 references ignored these.scripts/build-check-references.sh: a reference-by-reference build harness (clean→unlock→install→build→teardown-to-clean-git-state), with a live markdown report and PASS/FAIL summary.Build verification
Every reference was run through
install+buildvia the new harness. Each migrated file also validates against the avocado schema (ok:true).24 / 30 build clean. The remaining failures were investigated and are not caused by this migration — they fail either before the migrated sections are consumed (feed fetch) or inside code compilation (host toolchain), and 24 references using the identical migration pattern build green:
avocado-ext-devmissing from feed forgrinn-astra-1680-sbcavocado-ext-devmissing from feed forucm-imx8m-plusavocado-ext-devmissing from feed forucm-imx8m-plusHOSTCC= target cross-compiler → host tool can't run when cross-building x86 kernel on an arm64 host (builds on x86_64 hosts)avocado-ext-clipackage build exits non-zero after compiling + installing the CLIc-gpioinitially failed on a transient clock-skew flake and passes on a clean rebuild.zephyr-imx8mp-evkwas still building at PR time (Zephyr pulls dozens of module repos).Follow-ups for maintainers (not blocking this PR): publish
avocado-ext-devforgrinn-astra-1680-sbcanducm-imx8m-plusto2024/edge; investigate theavocado-ext-clipackage build (CLI1.0.0-rc.1).