fix: respect metadata.pluginRoot + prepare v0.8.9 hotfix#512
Merged
danielmeppiel merged 3 commits intomainfrom Mar 31, 2026
Merged
fix: respect metadata.pluginRoot + prepare v0.8.9 hotfix#512danielmeppiel merged 3 commits intomainfrom
danielmeppiel merged 3 commits intomainfrom
Conversation
Bare-name sources like "azure-cloud-development" in marketplace.json were resolved directly under owner/repo, ignoring the pluginRoot field that specifies the base directory (e.g. "./plugins"). Now _resolve_relative_source() prepends plugin_root to bare names, producing the correct path (github/awesome-copilot/plugins/azure-cloud-development). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds support for metadata.pluginRoot in marketplace manifests so that bare-name plugin sources (e.g., "source": "azure-cloud-development") resolve under the configured root directory (e.g., ./plugins) when installing from marketplaces like github/awesome-copilot.
Changes:
- Extend
MarketplaceManifestto parse and storemetadata.pluginRootasplugin_root. - Thread
plugin_rootthrough marketplace source resolution and apply it to bare-name relative sources. - Add unit tests covering parsing and resolution behavior with/without
pluginRoot.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| tests/unit/marketplace/test_marketplace_resolver.py | Adds coverage for bare-name relative source resolution with plugin_root. |
| tests/unit/marketplace/test_marketplace_models.py | Adds coverage for parsing metadata.pluginRoot into manifest.plugin_root. |
| src/apm_cli/marketplace/resolver.py | Threads plugin_root into resolution logic and prefixes bare-name sources when configured. |
| src/apm_cli/marketplace/models.py | Stores plugin_root on the manifest and parses it from metadata.pluginRoot. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Problem
apm install azure-cloud-development@awesome-copilotfails:The actual package lives at
github/awesome-copilot/plugins/azure-cloud-development.Root Cause
The upstream
awesome-copilotmarketplace.json declares:{ "metadata": { "pluginRoot": "./plugins" }, "plugins": [ { "name": "azure-cloud-development", "source": "azure-cloud-development" } ] }pluginRoottells consumers that bare-name plugin sources resolve underplugins/. Our parser never read this field, so"source": "azure-cloud-development"resolved togithub/awesome-copilot/azure-cloud-development(missingplugins/prefix).Fix
models.py— Addedplugin_root: strtoMarketplaceManifest, parsed frommetadata.pluginRootresolver.py—_resolve_relative_source()prependsplugin_rootto bare-name sources (no/); threaded throughresolve_plugin_source()andresolve_marketplace_plugin()Release v0.8.9
CHANGELOG.md— v0.8.9 section with fix: respect metadata.pluginRoot + prepare v0.8.9 hotfix #512 and fix: CI test assertions for Rich line-wrapping and scope output #510 fixespyproject.toml— version bumped to0.8.9All 3398 unit tests pass.