Fix extension materialization to move bundles into container#2339
Merged
Conversation
Materialize extension plugins into a dedicated extensions/ container, validate the new manifest convention, and bump extension plugin versions. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1
Restore source extension manifests to "extensions": "." while preserving materialization-time rewrite to "extensions" in distribution output. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1
Add intake and quality-gate checks for canvas-tagged external plugins so they must include extensions/extension.mjs and optional manifest extensions is validated when present. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1
Declare EXTENSIONS_DIR in clean-materialized-plugins and run extension cleanup once after plugin cleanup. Also normalize misspelled-key detection strings to satisfy spelling checks without changing validation behavior. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1
Track canvas structure as its own gate status and output, include it in aggregate summaries, and enforce Git object types so extensions/ is a tree and extensions/extension.mjs is a blob. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1
Change extension-plugin materialization to move root bundle entries into extensions/ instead of copying them, and assert originals are removed in test coverage. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1
Contributor
There was a problem hiding this comment.
Pull request overview
Updates canvas extension packaging for distribution and adds validation for the resulting structure.
Changes:
- Moves extension bundles into
extensions/and updates materialization tooling. - Adds external canvas structure quality gates.
- Bumps affected extension versions and marketplace metadata.
Show a summary per file
| File | Description |
|---|---|
AGENTS.md |
Documents source and distribution layouts. |
.codespellrc |
Allows the intentional typo fixture. |
.github/plugin/marketplace.json |
Updates extension versions. |
.github/workflows/external-plugin-command-router.yml |
Propagates canvas gate status. |
.github/workflows/external-plugin-intake.yml |
Propagates canvas gate status. |
.github/workflows/external-plugin-pr-quality-gates.yml |
Reports canvas structure results. |
eng/clean-materialized-plugins.mjs |
Adds extension cleanup handling. |
eng/external-plugin-intake.mjs |
Validates external canvas structure. |
eng/external-plugin-pr-quality-gates.mjs |
Summarizes the new gate. |
eng/external-plugin-quality-gates.mjs |
Implements the canvas structure gate. |
eng/external-plugin-quality-gates.test.mjs |
Tests canvas structure checks. |
eng/materialize-plugins.mjs |
Moves bundles into their container. |
eng/materialize-plugins.test.mjs |
Tests materialization behavior. |
eng/validate-plugins.mjs |
Clarifies source-manifest validation. |
extensions/accessibility-kanban/.github/plugin/plugin.json |
Bumps version. |
extensions/apng-studio/.github/plugin/plugin.json |
Bumps version. |
extensions/arcade-canvas/.github/plugin/plugin.json |
Bumps version. |
extensions/backlog-swipe-triage/.github/plugin/plugin.json |
Bumps version. |
extensions/chromium-control-canvas/.github/plugin/plugin.json |
Bumps version. |
extensions/color-orb/.github/plugin/plugin.json |
Bumps version. |
extensions/connector-namespaces/.github/plugin/plugin.json |
Bumps version. |
extensions/diagram-viewer/.github/plugin/plugin.json |
Bumps version. |
extensions/feedback-themes/.github/plugin/plugin.json |
Bumps version. |
extensions/gesture-review/.github/plugin/plugin.json |
Bumps version. |
extensions/java-modernization-studio/.github/plugin/plugin.json |
Bumps version. |
extensions/release-notes-showcase/.github/plugin/plugin.json |
Bumps version. |
extensions/repo-actions-hub/.github/plugin/plugin.json |
Bumps version. |
extensions/site-studio/.github/plugin/plugin.json |
Bumps version. |
extensions/tiny-tool-town-submitter/.github/plugin/plugin.json |
Bumps version. |
extensions/token-pacman/.github/plugin/plugin.json |
Bumps version. |
extensions/where-was-i/.github/plugin/plugin.json |
Bumps version. |
extensions/work-hub/.github/plugin/plugin.json |
Bumps version. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 2
- Review effort level: Medium
Materialize extension plugins into extensions/<plugin-name>/... (moved entries) so resulting paths are duplicated by design, and bump extension plugin versions to the next patch release. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1
Contributor
There was a problem hiding this comment.
Review details
Comments suppressed due to low confidence (1)
eng/materialize-plugins.mjs:99
- After these moves, each source directory no longer has its top-level
extension.mjs. The publish workflow runsnpm run buildimmediately after materialization, andgenerate-marketplace.mjs:78-82only includes extension manifests whose directory still has that file, so the generated distribution marketplace will drop every materialized extension. Update the generator to recognizeextensions/<extension-name>/extension.mjs(while retaining support for the source layout), and cover the materialize-then-build sequence.
moveEntry(
path.join(extensionPath, entry.name),
path.join(extensionBundlePath, entry.name)
);
- Files reviewed: 21/21 changed files
- Comments generated: 1
- Review effort level: Medium
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d26008fb-9928-4ba7-b7c8-36f35320f7c1
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.
Summary
extensions/instead of copying themValidation
node --test eng/materialize-plugins.test.mjsnode --check eng/materialize-plugins.mjs