Problem
src/commands/ext/install.rs:784 documents the inter-extension dependency form as:
// Format: { ext: "extension-name" } or { ext: "name", config: "path" } or { ext: "name", vsn: "version" }
The code on the next line reads a different key:
if let Some(ext_name) = spec_map.get("extensions").and_then(|v| v.as_str())
So the documented ext: is not recognised. An avocado.yaml written from the comment parses fine and is silently ignored - the entry falls through to the plain-package branch or is skipped, with no warning that the dependency was never registered. Silent misconfiguration rather than an error.
Present on main, not specific to any branch.
Suggested fix
Correct the comment to extensions:. Two lines, no behavior change.
Worth considering separately: accepting ext as an alias would make the documented form work rather than just describing it accurately. That is a behavior change and needs its own decision - the comment fix stands on its own either way.
Context
Found while deciding whether a device extension could declare its runtime dependency on the docker extension. It can be expressed, but note the entries are currently parsed and logged only - install.rs prints "should be installed via main install command" and installs nothing, deliberately, to avoid circular dependencies. So a declaration today records intent rather than enforcing anything, which is worth knowing before relying on the form at all.
No extension in avocado-os, meta-avocado or avocado-cli uses it today, so nothing is broken by the current wording - it is a trap for the first person who tries.
Problem
src/commands/ext/install.rs:784documents the inter-extension dependency form as:// Format: { ext: "extension-name" } or { ext: "name", config: "path" } or { ext: "name", vsn: "version" }The code on the next line reads a different key:
So the documented
ext:is not recognised. Anavocado.yamlwritten from the comment parses fine and is silently ignored - the entry falls through to the plain-package branch or is skipped, with no warning that the dependency was never registered. Silent misconfiguration rather than an error.Present on
main, not specific to any branch.Suggested fix
Correct the comment to
extensions:. Two lines, no behavior change.Worth considering separately: accepting
extas an alias would make the documented form work rather than just describing it accurately. That is a behavior change and needs its own decision - the comment fix stands on its own either way.Context
Found while deciding whether a device extension could declare its runtime dependency on the
dockerextension. It can be expressed, but note the entries are currently parsed and logged only -install.rsprints "should be installed via main install command" and installs nothing, deliberately, to avoid circular dependencies. So a declaration today records intent rather than enforcing anything, which is worth knowing before relying on the form at all.No extension in avocado-os, meta-avocado or avocado-cli uses it today, so nothing is broken by the current wording - it is a trap for the first person who tries.