Skip to content

ext install: doc comment names ext: but the code reads extensions: #190

Description

@jetm

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions