Skip to content

Dependency (transitive) extension installation bypasses requiredAzdVersion filtering #7888

@wbreza

Description

@wbreza

Origin

Identified during review of PR #7836 (comment) and documented as a known limitation in extension-resolution-and-versioning.md.

Context

When an extension declares dependencies, the dependency installation path (manager.go:386-414) calls Install() directly without going through resolveCompatibleExtension(). This means requiredAzdVersion checks are only applied to the top-level extension, not to its transitive dependencies.

A dependency may be installed at a version whose requiredAzdVersion is not satisfied by the running azd version, potentially causing runtime failures.

Scope

Update the dependency installation path in pkg/extensions/manager.go to apply requiredAzdVersion compatibility filtering when resolving and installing transitive dependencies.

Acceptance Criteria

  • Dependency installation applies requiredAzdVersion filtering
  • If a dependency has no compatible version, the top-level install fails with a clear error
  • If a newer incompatible dependency version exists, a warning is shown
  • Unit tests cover dependency compatibility filtering

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions