Skip to content

[Foundry Extensions] Add new meta package files.#8247

Open
trangevi wants to merge 3 commits into
mainfrom
trangevi/foundry-meta-package
Open

[Foundry Extensions] Add new meta package files.#8247
trangevi wants to merge 3 commits into
mainfrom
trangevi/foundry-meta-package

Conversation

@trangevi
Copy link
Copy Markdown
Member

Add new meta package files. Update versions of new extensions to match agents pattern

Add new meta package files.

Signed-off-by: trangevi <trangevi@microsoft.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds a new azure.ai.foundry meta-package extension that bundles all Foundry AZD extensions, and bumps the version of seven related Azure AI extensions from 0.0.1-preview to 0.1.0-preview for consistency with the agents pattern.

Changes:

  • New azure.ai.foundry meta-extension with extension.yaml, README.md, and CHANGELOG.md.
  • Version bumps from 0.0.1-preview0.1.0-preview across 7 extensions (connections, inspector, projects, routines, skills, toolboxes, and updates to changelogs/version.txt files).

Reviewed changes

Copilot reviewed 21 out of 21 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
cli/azd/extensions/azure.ai.foundry/extension.yaml New meta-package definition with dependencies on all Foundry extensions.
cli/azd/extensions/azure.ai.foundry/README.md New README for the meta-extension.
cli/azd/extensions/azure.ai.foundry/CHANGELOG.md Initial changelog for the new meta-extension.
cli/azd/extensions/azure.ai.connections/{version.txt,extension.yaml,CHANGELOG.md} Version bump to 0.1.0-preview.
cli/azd/extensions/azure.ai.inspector/{version.txt,extension.yaml,CHANGELOG.md} Version bump to 0.1.0-preview.
cli/azd/extensions/azure.ai.projects/{version.txt,extension.yaml,CHANGELOG.md} Version bump to 0.1.0-preview.
cli/azd/extensions/azure.ai.routines/{version.txt,extension.yaml,CHANGELOG.md} Version bump to 0.1.0-preview.
cli/azd/extensions/azure.ai.skills/{version.txt,extension.yaml,CHANGELOG.md} Version bump to 0.1.0-preview.
cli/azd/extensions/azure.ai.toolboxes/{version.txt,extension.yaml,CHANGELOG.md} Version bump to 0.1.0-preview.

Comment thread cli/azd/extensions/azure.ai.foundry/README.md Outdated
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 19, 2026

🔗 Linked Issue Required

Thanks for the contribution! Please link a GitHub issue to this PR by adding Fixes #123 to the description or using the sidebar.
No issue yet? Feel free to create one!

Copy link
Copy Markdown
Contributor

@wbreza wbreza left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary

Small, mechanical PR introducing the azure.ai.foundry meta-extension and aligning 6 sibling extensions to 0.1.0-preview so the meta-package''s ~0.1.0-preview dependency constraints resolve cleanly. No Go code touched. Risk is very low. Two things worth addressing before merge and one optional follow-up.


🟡 README is a copy-paste leftover from the demo extension

File: cli/azd/extensions/azure.ai.foundry/README.md

# `azd` Demo Extension

A meta-extension, to encapsulate all of the Microsoft Foundry AZD extensions.

The title was copy-pasted from another scaffold. Every other AI extension in this repo follows # Foundry <Thing> (e.g., azure.ai.connections/README.md# Foundry Connections). Since this README is user-facing on the extension registry, suggest something like:

# Azure AI Foundry

A meta-extension that bundles all of the Microsoft Foundry `azd` extensions for easy install. (Preview)

🟡 metadata capability on a dependencies-only extension will log a warning at install time

File: cli/azd/extensions/azure.ai.foundry/extension.yaml

capabilities:
    - metadata

The schema requires capabilities to have minItems: 1, so a meta-package must declare something — but declaring metadata without an entryPoint/binary means manager.fetchAndCacheMetadata (cli/azd/pkg/extensions/manager.go:549–554, 872–910) will try to invoke a non-existent executable and fall through to runner.go:51–53 with "extension path '''' not found". The error is non-fatal (manager.go:552 logs a warning and continues), so install succeeds — but every user installing the meta-package will see that warning.

A few directions:

  • (A) Accept the warning as a known quirk of using metadata for a pure dependency aggregator.
  • (B) Suppress the warning in fetchAndCacheMetadata when the extension declares no artifacts/entryPoint (small follow-up in azd core).
  • (C) Introduce a new meta-package / dependencies-only capability that explicitly opts out of metadata fetch — cleanest long-term fix, out of scope here.

The internal azd.internal.pack extension sidesteps this by omitting capabilities entirely, which the schema technically forbids but works because internal extensions bypass schema validation. External meta-packages don''t have that escape hatch today.

Worth confirming the warning is intentional and acceptable for the first ship.


🟢 CHANGELOG.md entries for bumped extensions still say "Initial Version"

For the six bumped extensions, the CHANGELOG just rewrites the version number on the same line:

-## 0.0.1-preview - Initial Version
+## 0.1.0-preview - Initial Version

Since 0.0.1-preview was never published, treating 0.1.0-preview as the new "Initial Version" is defensible — but it erases any history that a 0.0.1-preview ever existed. If the team wants the changelog to read as a true release log, consider either keeping both lines or adding a one-liner noting the version-scheme alignment with the agents extension. Not a blocker.


✅ Verified

  • Tilde + prerelease semver constraints work. Ran Masterminds/semver/v3 (the resolver used by cli/azd/pkg/extensions/manager.go:356) against ~0.1.0-preview and confirmed it matches 0.1.0-preview, 0.1.32-preview, and 0.1.99-preview, and rejects 0.2.0-preview. So the dependency on azure.ai.agents@~0.1.0-preview resolves cleanly against the current 0.1.32-preview.
  • metadata is a valid schema enum value.
  • All 7 declared dependencies exist in cli/azd/extensions/.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@wbreza wbreza left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-review — commit b06d15b4

Summary

Only one change since my prior review: a 1-line README heading fix in response to the copilot-pull-request-reviewer comment.

- # `azd` Demo Extension
+ # `azd` Azure AI Foundry Extension

Risk: very low. No code paths affected.

Status of prior findings

Prior finding Status
🟡 README copy-paste title Resolved — new heading is consistent with the displayName in extension.yaml.
🟡 metadata capability on a dependencies-only extension logs a warning at install time (manager.go:549–554, 872–910runner.go:51–53) 🟡 Open — not addressed. Reasonable to ship as-is if you''ve decided to accept the warning; worth a one-line confirmation of intent.
🟢 CHANGELOG entries still labeled "Initial Version" after the version bump 🟢 Open — non-blocker.

New findings from this commit

None. Single-line markdown heading change with zero risk.

Thanks for the quick fix on the README — happy to defer the remaining two items.

Signed-off-by: trangevi <trangevi@microsoft.com>
Copy link
Copy Markdown
Contributor

@wbreza wbreza left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. ✅

The extension.yaml simplification is the cleanest possible fix for the prior metadata-capability concern — verified:

  • Schema validation isn''t enforced at runtime (ValidateAgainstSchema in pkg/extensions/schema_validator.go is test-only).
  • Capabilities is omitempty in the Go struct (pkg/extensions/extension.go:20, registry.go:119).
  • No install-time check requires capabilities (pkg/extensions/manager.go:386–390, 518–530).
  • azd.internal.pack is the existing precedent for capabilities-less meta-extensions.

So no metadata fetch is attempted at install → no warning logged.

One follow-up worth noting (not blocking, separate PR)

cli/azd/extensions/extension.schema.json still declares capabilities as required with minItems: 1. The runtime ignores the schema so this isn''t a functional bug, but editors honoring the $schema directive at the top of extension.yaml will flag the file. Worth either making capabilities optional in the schema, or adding a meta-package capability enum so dependency-only extensions can self-declare.

The "Initial Version" wording in the bumped CHANGELOG files remains non-blocking — defer.

@JeffreyCA JeffreyCA added the ext-agents azure.ai.{agents,connections,inspector,projects,routines,skills,toolboxes} extensions label May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ext-agents azure.ai.{agents,connections,inspector,projects,routines,skills,toolboxes} extensions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants